Nous savons tous que Meteor propose le pilote miniMongo qui permet de manière transparente au client d'accéder à la couche persistante (MongoDB).
Si un client peut accéder à l'API persistante, comment sécuriser son application?
Quels sont les mécanismes de sécurité fournis par Meteor et dans quel contexte doivent-ils être utilisés?
Réponses:
Lorsque vous créez une application à l'aide de la commande meteor, l'application inclut par défaut les packages suivants:
Ensemble, ils imitent l'effet de chaque client ayant un accès complet en lecture / écriture à la base de données du serveur. Ce sont des outils de prototypage utiles (à des fins de développement uniquement), mais ne conviennent généralement pas aux applications de production. Lorsque vous êtes prêt pour la version de production, supprimez simplement ces packages.
Pour en ajouter davantage, Meteor prend en charge les packages Facebook / Twitter / et Much More pour gérer l'authentification, et le plus cool est le package Accounts-UI.
la source
meteor remove autopublish insecure
.access denied
erreur. Vérifiez-le.Dans les collections, doc dit:
la source
Si vous parlez de restreindre le client pour qu'il n'utilise aucune de vos API d'insertion / mise à jour / suppression non autorisées, c'est possible.
Consultez leur application todo sur https://github.com/meteor/meteor/tree/171816005fa2e263ba54d08d596e5b94dea47b0d/examples/todos
En outre, ils ont maintenant ajouté un module AUTH intégré, qui vous permet de vous connecter et de vous inscrire. Donc c'est sûr. Dans la mesure où vous vous occupez de XSS, des valiations, des en-têtes de clients, etc.
mais vous pouvez à tout moment convertir l'application meteor en une application nodejs entièrement fonctionnelle en la déployant sur node. Donc, si vous savez comment sécuriser une application nodejs, vous devriez pouvoir sécuriser meteor.
la source
Depuis la version 0.6.4, pendant le mode de développement, les blocs is_client et is_server vont toujours tous les deux vers le système client. Je ne peux pas dire si ceux-ci sont séparés lorsque vous désactivez le mode de développement.
Cependant, s'ils ne le sont pas, un hacker pourrait être en mesure d'obtenir des informations du système en examinant les blocs de code if (Meteor.is_server). Cela me préoccupe particulièrement, en particulier parce que j'ai noté que je ne peux toujours pas séparer les collections en fichiers séparés sur le client et le serveur.
Mettre à jour
Eh bien, le point est de ne pas mettre de code lié à la sécurité dans un bloc is_server dans un répertoire non-serveur (c'est-à-dire - assurez-vous qu'il se trouve dans quelque chose sous / server.
Je voulais voir si j'étais juste fou de ne pas pouvoir séparer les collections client et serveur dans les répertoires client et serveur. En fait, cela ne pose aucun problème.
Voici mon test. C'est un exemple simple du modèle de publication / abonnement qui semble fonctionner correctement. http://goo.gl/E1c56
la source