2012-12-31 4 views
3

Je raccorde Filepicker.io à mon application météore pour le téléchargement de fichiers. Ce service a une clé API que (bien sûr) ils recommandent de garder secrète. J'ai trouvé quelques autres exemples d'applications sur github où le secret de fichierpicker est dans un site normal dans le code client. Cela semble juste un peu fragile. Et même si ce n'est pas dans un rapport public, puisque c'est spécifié dans le code client, je peux récupérer la clé de l'application en utilisant la console Javascript (si je le voulais).Quelle est la meilleure façon de protéger les clés secrètes lors du déploiement d'une application Meteor?

Je me demande s'il existe un moyen de cacher des secrets avec une application (comme la configuration de heroku) qui permettrait de garder cette clé secrète. Mon plan actuel consiste à mettre la clé dans la base de données et à verrouiller ce modèle afin qu'il soit uniquement disponible à partir du code du serveur. Y a-t-il un moyen plus simple?

Merci pour les pointeurs.

Répondre

7

La branche devel (bientôt en 0.5.3) a une nouvelle fonction Meteor.settings: si vous passez un fichier JSON comme argument pour meteor run ou meteor deploy, l'objet sera disponible sur le serveur comme Meteor.settings. (Avec meteor deploy, il est persistant, de sorte que vous ne devez pas vous souvenir de le passer à chaque fois.)

(Si vous utilisez votre propre environnement d'hébergement, vous pouvez transmettre le contenu du fichier JSON via le Variable d'environnement METEOR_SETTINGS)

L'utilisation de la base de données fonctionne également --- c'est ainsi que Meteor Accounts stocke la configuration pour les comptes OAuth. Mon opinion personnelle est que Meteor.settings est le meilleur pour la configuration de l'application, alors que la base de données est la meilleure pour la configuration du paquet, car cela permet aux paquets d'afficher un widget de configuration interactif au premier démarrage comme accounts-ui.

Questions connexes