2010-10-27 23 views
1

Récemment, j'ai commencé à utiliser codex.com pour héberger un projet que je veux partager avec d'autres personnes. Je suis nouveau à l'utilisation du contrôle Source et du traitement Open Source.Quelle est la meilleure façon de gérer les données sensibles tout en utilisant un contrôle de source?

Mon application concerne Twitter, et bien sûr je dois utiliser les clés API Twitter. J'utilise Visual Studio 2010 et TortoiseHg pour le contrôle de source. Donc, ma question est: Comment puis-je pousser le code sans partager les données sensibles telles que la clé API? Je suis censé ne pas partager ces clés, non? Clés API Twitter, clé API TwitPic, clé API Plixi ...

Dois-je nettoyer les données sensibles à chaque fois avant de pousser mon code?

En outre, pourriez-vous s'il vous plaît dites-moi où puis-je apprendre les meilleures pratiques pour l'utilisation du contrôle de la source?

Répondre

3

Vous devez externaliser toutes les informations sensibles dans un fichier de propriétés dédié. Ce fichier doit être exclu du contrôle de source. La plupart (sinon tous) les systèmes de contrôle de source vous permettront de marquer un fichier comme n'étant pas versionné. Je ne sais pas spécifiquement sur Hg, mais .hgignore semble être l'endroit.

Tous les systèmes de contrôle de source sont particulièrement ennuyeux quand il s'agit de supprimer des informations du référentiel. Nous pourrions presque penser qu'ils ont été créés pour enregistrer l'histoire complète d'un projet ;-) Alors soyez prêt à changer votre clé d'API une fois qu'elle est commise par erreur (pas que j'ai déjà fait quelque chose comme ça).

Modifier comme il semble que je n'étais pas assez clair:

La partie la plus importante est de séparer clairement les informations sensibles des informations standard. Vous devriez avoir un fichier qui contient des informations sensibles et uniquement sensibles. Puis étiqueter ce fichier comme "non versionné". Si vous ne le faites pas, vous finirez invariablement par commettre vos informations sensibles. Et une fois qu'ils sont sortis, il n'y a presque aucun moyen de les faire disparaître. Un autre moyen consiste à crypter les données sensibles, valider les données cryptées et avoir la clé de déchiffrement seulement présente sur le serveur (ou sur un autre endroit soigneusement contrôlé, loin de votre système de contrôle de version). Nous utilisons effectivement cette solution dans la banque privée où je travaille, de sorte que les développeurs n'ont pas accès aux mots de passe des systèmes de production.

+0

Merci beaucoup Guillaume. Donc, si je veux tester mon projet localement, je devrais juste supprimer les données sensibles avant de commettre, à droite. Je souhaite que je puisse obtenir plus d'opinions de personnes expérimentées. – Hasan