Le chiffrement appSettings dans le web.config
-
09-06-2019 - |
Question
Je développe une application web qui nécessite un nom d'utilisateur et mot de passe pour être stockées dans le site web.Config, il se réfère également à des URLs qui seront demandées par l'application web elle-même et de ne jamais le client.
Je sais que le .Net framework ne sera pas permettre à un site web.fichier de configuration pour être servi, mais je pense toujours que sa mauvaise habitude de laisser ce genre d'informations en texte clair.
Tout ce que j'ai lu jusqu'à présent m'oblige à utiliser un commutateur de ligne de commande ou pour stocker des valeurs dans le registre du serveur.J'ai accès à aucune de celles que l'hôte est en ligne et j'ai seulement le FTP et le Panneau de commande de barre l'accès.
Quelqu'un peut-il recommander des bons, gratuit de cryptage des DLL ou des méthodes que je peux utiliser?Je préfère ne pas développer mon propre!
Merci pour les commentaires jusqu'à présent les gars mais je ne suis pas en mesure d'envoyer des commandes et de et de ne pas pouvoir modifier le registre.Sa va être un chiffrement util/helper mais juste vous demandez-vous à qui un!
La solution
- Le cryptage et le Décryptage des Sections de Configuration (ASP.NET) sur MSDN
- Cryptage De Web.Config Valeurs dans ASP.NET 2.0 sur ScottGu de l' blog
- Le Cryptage Des Sections De Configuration Personnalisée sur K.Scott Allen blog
EDIT:
Si vous ne pouvez pas utiliser asp utilitaire, vous pouvez crypter le fichier de configuration à l'aide de SectionInformation.ProtectSection la méthode.
L'échantillon sur codeproject:
Le cryptage des Chaînes de Connexion à l'intérieur du Web.config ASP.Net 2.0
Autres conseils
Alors que sur la première vue, il semble être simple, il y a quelques obstacles que j'ai rencontrés.
Donc, je suis en fournissant des étapes qui a bien fonctionné pour moi (pour chiffrer le appSettings la section) à l'aide de la valeur par défaut de la crypto fournisseur de:
Chiffrer articles dans le web.config:
- Ouvrez Admin shell de commande (exécuter en tant qu'administrateur!).L'invite de commande va être sur
C:
qui est supposé pour les étapes ci-dessous.
Par ailleurs supposé que l'application est déployée surD:\Apps\myApp
- le remplacer par le chemin d'accès que vous utilisez dans étape 3. cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
, sur la 32 bits de Windows systèmes d'utilisationFramework
au lieu deFramework64
cd /D "D:\Apps\myApp"
Note: L'/D
interrupteur va changer le disque automatiquement si elle est différente de votre lecteur en cours.Ici, il va modifier le chemin d'accès et le lecteur, de sorte que le répertoire courant seraD:\Apps\myApp
par la suite.c:aspnet_regiis -pef appConfig .
Vous devriez voir ce message:
Microsoft (R) ASP.NET RegIIS version 4.0.30319.0 Utilitaire d'Administration pour installer et désinstaller ASP.NET sur la machine locale.Copyright (C) Microsoft Corporation.Tous droits réservés.Le chiffrement de section de configuration...Réussi!
Vous pouvez également Décrypter articles dans le web.config:Ce sont les mêmes étapes, mais avec l'option -pdf
au lieu de -pef
pour aspnet_regiis.
Il est également possible de chiffrer d'autres sections de votre site web.config, par exemple, vous pouvez chiffrer les chaînes de connexion l'article via:
aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"
Plus de détails sur qui peut être trouvé ici.
Note: Le chiffrement ci-dessus est transparent pour votre application web, c'est à direvotre application web ne reconnaît pas que les paramètres sont cryptées.
Vous pouvez également choisir d'utiliser non-transparent de cryptage, par exemple à l'aide de Microsoft DPAPI ou à l'aide de AES avec le Cadre de AES Classe.
Comment c'est fait avec DPAPI J'ai décrit ici, à Stackoverflow.DPAPI fonctionne de manière très similaire dans le sens qu'il utilise la machine ou à l'utilisateur des informations d'identification de touches.Généralement, non le chiffrement transparent vous donne plus de contrôle, par exemple, vous pouvez ajouter un SEL, ou vous pouvez utiliser une clé basée sur un utilisateur, mot de passe.Si vous voulez en savoir plus sur la façon de générer une clé à partir d'une phrase de passe, regardez ici.
Utilisation aspnet_setreg.exe http://support.microsoft.com/kb/329290