J'ai une application ASP.NET Core 2.0 WebAPI qui a Db ConnectionString dans appSettings.json. Alors que dans le développement, il a cette valeur:ASP.NET Core appSettings.json sécurité
"DefaultConnection": "Serveur = localhost; Base de données = Tyroll; Trusted_Connection = True; MultipleActiveResultSets = true"
et que lorsque nous publions à la production nous modifions cela avec des mots de passe appropriés, en utilisant le profil de publication VS 2017. Par conséquent, les mots de passe du serveur SQL pour ne sont pas stockés dans le référentiel et ne posent aucun problème à cet endroit.
Le fichier est appsettings.json protected by IIS
La question que je me demande ce mot de passe est devrait être en quelque sorte « caché » même sur IIS?
L'une des raisons étant la sécurité supplémentaire, de sorte que les informations d'identification SQL ne sont pas en texte brut en cas de violation ici. Autre pour un scénario d'autorisation dans lequel l'administrateur IIS ne doit pas avoir directement accès au serveur SQL. Je pense qu'il pourrait être crypté et l'application elle-même aura la clé pour le décrypter. Cela ne serait pas sûr à 100% puisque dans le cas d'une violation sur IIS, même cette clé pourrait être inversée à partir de l'application, mais cela rendrait la tâche plus difficile alors qu'elle est là en texte brut.
Donc, la première question est que je devrais faire cela du tout?
Et deuxièmement, si 1.Q est Oui, quelle serait la meilleure façon de le faire?
Y a-t-il un outil intégré pour cela dans .NetCore2 ou VS2017 ou IIS, ou un autre outil?
Voici quelques liens connexes:
- reddit aspnet_core_appsettingsjson_security_question
- stackoverflow is-appsettings-json-protected-by-iis
- itprotoday passwords-webconfig
- keeping-secrets-in-asp-net-core
Ce n'est pas une option dans mon cas, car SQL Server n'est pas dans le même domaine, il est dans le [DMZ] (https://security.stackexchange.com/questions/3667/what-is-the-real- function-and-use-of-a-dmz-on-a-network) – borisdj
Vous voulez dire que SQL Server est en DMZ ..Il doit être un serveur d'hébergement de base de données publique..Elle ne devrait pas être en DMZ –
Oui Le serveur SQL est dans DMZ, donc IIS est dans un autre domaine. Ce n'est pas un hébergement public, il est privé, et seules les applications de notre ISS avec les informations d'identification de l'utilisateur (UserName et mot de passe) peuvent y accéder. – borisdj