L'API de repos pour Mongolab est cool. Je peux utiliser cela pour Analytics sur mon site Web directement en utilisant le JavaScript suivant, fourni sur la page de support de Mongolab. Seulement si je peux comprendre comment fonctionne l'authentification. La clé API mentionnée dans l'URL pourrait être facilement copiée par quiconque visua la source HTML. Le panneau de commande Mongolab n'offre aucune inscription à mon site Web qui vous assurerait que la clé API ne sera validée que si elle venait de mon domaine. Comment cette authentification fonctionne-t-elle?
$.ajax( { url: "https://api.mongolab.com/api/1/databases/my-db/collections/my-coll?apiKey=myAPIKey",
data: JSON.stringify( { "x" : 1 } ),
type: "POST",
contentType: "application/json" } );
3 Réponses :
Excellente observation et grande question. p>
Actuellement, toutes les touches API ont lu et écrivent l'accès aux bases de données associées au compte de l'utilisateur, et tout agent possédant une clé API peut réussi à émettre une telle demande. p>
Comme vous l'observez, cette clé de passe de base n'est pas conçue avec aucune sorte de sécurité à grain fin. P>
Cependant, nous travaillons sur un lot de nouvelles fonctionnalités de sécurité de l'API de repos visant à ce que ce soit précisément. P>
Contactez-nous à support@mongolab.com si vous souhaitez discuter des détails. P>
Vous semblez y travailler pendant longtemps, tandis que j'apprécie qu'il y ait d'autres moyens les développeurs peuvent faire cela eux-mêmes, une échelle de temps estimée serait utile.
J'aimerais entendre un peu plus à ce sujet en termes de planification. Existe-t-il un lien vers le "lot de nouvelles fonctionnalités de sécurité API" afin que je puisse lire comment ils vont travailler et éventuellement peser avec mes 2cts?
Une mise à jour pour ceci ? Votre exemple JQuery n'a pas vraiment de sens si l'API ne peut pas être utilisé côté client.
Vous avez une clé API pour effectuer une demande HTTP à votre DB en utilisant leur API de repos. Par exemple, si un utilisateur souhaite vous connecter, je fais une demande avec une méthode d'obtenir comme suit: p>
Et puis vous analysez la réponse à cette demande. Ce n'est pas la DB la plus sûre au monde, mais cela va mieux. P>
Si vous voulez plus d'informations, je parle de cela dans mon blog: http://lolapriego.com/ Blog /? P = 16 P>
J'aimerais utiliser le service Mongolab pour ma première application angularjs avec MongoDB, mais Mongolab n'est pas prêt pour la production avec une application Web qui souhaite un accès à l'extrémité avant du MongoDB. P>
Il est très facile d'obtenir la clé API dans le trafic réseau des navigateurs (voir Capture d'écran ci-dessous, l'apayé est en texte brut), puis tout le monde peut avoir un accès complet à la DB. Alors gâcher avec le MongoDB ne serait pas un problème. P>
Je n'ai pas encore trouvé de solution de contournement pour Mongolab. En ce moment, je pense que je vais utiliser un autre service comme https://www.dreamfactory.com/ < / p>
Je ne l'ai pas encore essayé en détail, mais cela a fière allure pour un angularApp avec MongoDB et j'ai besoin de vérifier comment ils ont mis en œuvre la sécurité de l'API. Au premier aspect, on dirait qu'il fonctionne avec des jetons de session pour sécuriser les demandes de la base de données. P>
P>