Configuration chiffrée en ASP.NET de Base
Avec web.config
de s'en aller, quel est le meilleur moyen de stocker des informations sensibles (mots de passe, jetons) dans la configuration d'une application web intégré à l'aide de ASP.NET Core?
Est-il un moyen pour obtenir automatiquement cryptées sections de configuration dans appsetttings.json
?
OriginalL'auteur Ovi | 2016-03-17
Vous devez vous connecter pour publier un commentaire.
Secrets de l'utilisateur semble une bonne solution pour stocker les mots de passe, et, de façon générale, l'application des secrets, au moins au cours du développement.
Cochez cette l'article ou cette. Vous pouvez aussi vérifier cette autres DONC, la question.
C'est juste un moyen de "cacher" vous secrets au cours du processus de développement et pour éviter dislosing dans l'arborescence des sources; le Secret outil Gestionnaire de ne pas chiffrer les secrets enregistrés et ne doit pas être traitée comme une banque approuvée.
Si vous souhaitez mettre un chiffrés appsettings.json à la production, il n'y a pas de limite à ce sujet. Vous pouvez construire votre configuration personnalisée fournisseur.
Vérifier cette.
Par exemple:
Définir une classe statique pour votre méthode d'extension:
Et puis vous pouvez l'activer:
J'ai posté une solution ci-dessous qui fonctionne pour moi, beaucoup plus simple et parfait pour mes besoins.
OriginalL'auteur Luca Ghersi
Je n'ai pas envie d'écrire un fournisseur personnalisé--beaucoup trop de travail. Je voulais juste puiser dans JsonConfigurationProvider, j'ai donc trouvé un moyen qui fonctionne pour moi, espérons que cela aide quelqu'un.
Qui méthode de cryptage sera mieux??
M'a aidé. Merci!
Pas vraiment utile, ne s'agit-il d'augmenter la sécurité d'un lot. Afin de décrypter les données, vous avez besoin de la clé de déchiffrement, qui est à l'intérieur de votre application. Si un attaquant qui arrive sur votre serveur, à la fois, le fichier de configuration et l'application et peut encore déchiffrer facilement vos données. Vous devriez plutôt utiliser la DataProtection pour les locaux ou Azure Clé Valut pour les applications azure.
Les deux Azure KeyVault (.NET de Base 1.1) et DataProtection (.NET Core 1.0) où il depuis longtemps, avec dataprotection datant du rc versions 1.0
OriginalL'auteur CoderSteve
Je suis d'accord avec @CoderSteve que l'écriture d'un tout nouveau fournisseur est trop de travail. Il a également de ne pas construire sur la norme existante JSON de l'architecture. Voici une solution que je viens avec les versions sur le dessus de la norme JSON architecture, utilise le préféré .Net de cryptage de Base des bibliothèques, et est très DI sympathique.
Fil de votre protégé sections de configuration comme ceci:
Vous pouvez facilement créer des valeurs chiffrées pour vos fichiers de configuration à l'aide d'un contrôleur comme ceci:
Utilisation:
http://localhost/cryptography/encrypt?section=SectionName:KeyName&value=PlainTextValue
Regarde comme je vais avoir un problème de dénomination. Quand j'ai changé la DataProtectors appellation de "Test", il a travaillé. Quelque chose à propos de mes noms de section n'est pas de travail, mais au moins j'ai trouvé le problème.
OriginalL'auteur Scott Roberts
Cette méthode est correcte
OriginalL'auteur Andrei Kutishchev