2016-12-31 3 views
-1

Dans mon application je sauve actuellement la chaîne de connexion à la zone suivante:C# - Comment stocker en toute sécurité mon ConnectionString

Properties.Settings.Default.ConnectionString(); 

Cependant, je réalise que c'est une mauvaise pratique puisque la chaîne de connexion peut être consulté par l'utilisateur. J'ai cherché sur Internet et la plupart des réponses recommandées pour enregistrer la chaîne de connexion dans mon fichier app.config, mais l'utilisateur peut toujours voir la chaîne de connexion de sorte qu'il n'est toujours pas sûr. J'ai pensé à mettre ma chaîne de connexion à une chaîne et à la déclarer chaque fois que je lance mon programme, mais cela semble inefficace.

Quel est le moyen le plus sûr de sauvegarder ma chaîne de connexion pour la cacher à l'utilisateur? Je vous remercie.

Edit: c'est la chaîne de connexion:

Server=server.com;PORT=3306;Database=db_user;Uid=admin;Pwd=test; 
+0

Quel fournisseur de base de données? Comment l'application se connecte-t-elle à la base de données? directement? via un serveur d'application? utilise-t-il une connexion et un mot de passe utilisateur qui doivent être dans une chaîne de connexion? ou utilise-t-il la sécurité intégrée (aka windows security)? –

+0

Désolé de ne pas spécifier. Voici ma chaîne de connexion: Server = server.com; PORT = 3306; Database = utilisateur_bdd; Uid = admin; Pwd = test; – Harry

+3

Eh bien, si vous utilisez MS SQL Server, l'utilisation de _integrated security_ plutôt que de spécifier le mot de passe dans le fichier de configuration est un bon début – MickyD

Répondre

3

Qu'est-ce que vous pouvez faire est: Chiffrer la chaîne de connexion dans le fichier de configuration et décrypter avant d'établir la connexion DB. Il y a une belle réponse de la façon de le faire ici: Encrypting & Decrypting a String in C#

0

Que diriez-vous si vous stockez les éléments de connexion tels que (nom du serveur, le nom db, utilisateur et passer) dans les paramètres des propriétés des projets.