50 votes

Comment masquer la chaîne de connexion, le nom d'utilisateur, le pw lors de l'utilisation du contrôle de source ?

Je travaille sur un petit projet parallèle et j'utilise des chaînes de connexion ainsi que des clés et des valeurs d'API qui ne doivent pas être vues ou utilisées par d'autres personnes. J'utilise un compte public GitHub pour le contrôle des sources. Quelle est la méthode habituelle pour utiliser le contrôle de la source lorsque ces valeurs sont en texte brut dans web.config ?

Dois-je supprimer les valeurs manuellement avant de les vérifier dans le code ?

68voto

Rupert Bates Points 1690

Ce qui fonctionne, c'est d'enregistrer une version du fichier avec des valeurs vides ou fictives, puis de l'exécuter :

git update-index --assume-unchanged [fileName]

Git cessera alors de surveiller les modifications apportées à ce fichier, ce qui vous permettra d'y placer les véritables informations de configuration sans craindre de les vérifier.

Si, par la suite, vous apportez des modifications que vous voulez vraiment vérifier, vous pouvez le faire :

git update-index --no-assume-unchanged [fileName]

33voto

Rob Points 3409

Nous conservons la configuration sensible et/ou spécifique à la machine dans des fichiers de configuration séparés, puis nous utilisons configSource pour les inclure comme suit...

<connectionStrings configSource="cstrings.config"/>

De cette façon, vous pouvez vérifier dans Web.config et un fichier cstrings.config qui a une valeur générique qui peut être utilisée sur une machine dev. (par exemple, (local), ...MyAppNameDb...)

Pour les environnements de production, marquez le fichier cstrings.config comme étant en lecture seule et configurez votre script de déploiement afin de ne pas tenter d'écrire dessus. Votre chaîne de connexion de production est protégée par la sécurité dont vous disposez sur cette boîte. Cela permet de garder vos chaînes sensibles hors du contrôle de version.

cstrings.config :

<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
    <add name="Default" connectionString="Server=localhost"/>
</connectionStrings>

4voto

amro Points 323

Vous pouvez vérifier dans un fichier comme config.sample qui contient des valeurs fictives. Chaque développeur copiera ensuite ce fichier dans config et y modifiera ses propres valeurs. Vous pouvez ensuite placer ce fichier local dans .gitignore.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X