Comment stocker de manière sécurisée une chaîne de connexion dans une application WinForms?
J'ai besoin de savoir quelle est la façon la plus commune de stocker une chaîne de connexion SQL server pour une application WinForms VB.NET.
J'ai cherché sur le net et j'ai trouvé des réponses à chacune des questions suivantes:
- Comment puis-je lire app.config valeurs
- Comment le faire dans ASP.NET Référence: cette SORTE de question.
- Comment dois-je stocker une chaîne de connexion (non crypté donc dangereux)
Je voudrais une réponse complète sur la façon de stocker une chaîne de connexion dans VB.NET dans app.config
(ou settings.settings
si c'est mieux) en toute sécurité.
Est app.config
la bonne place? Je peux chiffrer ces valeurs?
Vous devez vous connecter pour publier un commentaire.
Simplement , l' .net framework vous permet de le faire , voir
http://msdn.microsoft.com/en-us/library/89211k9b(v=vs. 80).aspx
Informations pertinentes:
Cela va dans le de la machine.config fichier:
Et c'est le code de l'application:
Mise à JOUR de 1
Merci @wpcoder, pour ce lien
The connection string can only be decrypted on the computer on which it was encrypted
. La mise à jour de MS lien pour l'article a pu fournir une solutionÀ mon travail, nous stocker les chaînes de connexion dans l'application.config, mais nous les chiffrer avec AES256. Il fonctionne très bien et ajoute une bonne quantité de la sécurité. Nous avons écrit un petit outil qui vous permet de crypter et décrypter des chaînes de connexion afin d'édition de l'application.les fichiers de configuration est assez facile. Nous avons juste le chiffrement de la clé codée en dur dans l'application, donc si quelqu'un qui s'intéresse à décompiler les assemblées, il pouvait le comprendre, mais il soulève la barre assez haute pour nos besoins. Voici la classe que nous avons utiliser pour crypter et décrypter les chaînes de connexion:
En fait, nous avons terminé qu'à l'intérieur d'un ConnectionStringEncrpyter classe qui code en dur de la clé secrète.