2017-07-05 3 views
1

Dans mon application Web qui est hébergé en tant que service App Azure, je donne les résultats suivants dans mon web.config pour les tests:Sécurisation des chaînes de connexion et paramètres de l'application dans une application Azure - comment les utiliser localement

<connectionStrings> 
    <add name="ProductionConnection" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:something.database.windows.net,1433;Initial Catalog=DatabaseName;User [email protected];[email protected];Trusted_Connection=False;Encrypt=True;Connection Timeout=30; MultipleActiveResultSets=True" /> 
</connectionStrings> 

I essaie de suivre certaines des meilleures pratiques ici de sécurité de base, donc je l'ai déplacé ma chaîne de connexion à la section Application Settings de mon application web:

enter image description here

Ce paramètre particulier est un mauvais exemple parce que l'idéal je d seulement jamais h ave ProductionConnection stocké dans Azure et jamais utilisé localement - mais pour d'autres chaînes de connexion et appSettings utilisé localement et en production qui devrait être protégé, comment dois-je gérer les valeurs lors du développement local?

+1

'comment dois-je gérer les valeurs lors du développement local' Voulez-vous dire développeur ne devrait pas voir la valeur de chaîne de connexion? – Win

+0

@Win Je veux dire que la valeur de la chaîne de connexion/le paramètre de l'application ne doivent pas être cuits dans le répertoire 'bin' de l'application – SB2055

Répondre

0

Je veux dire la mise en valeur de chaîne de connexion/app ne doit pas être cuit dans le bac de l'application répertoire

Les chaînes de connexion sont normalement situés à l'intérieur fichier web.config. web.config ne sera jamais dans le dossier bin; nous le plaçons normalement dans le dossier racine de l'application. Je crois que vous voulez dire stocker des informations sensibles comme le nom d'utilisateur et le mot de passe pour accéder à SQL Server. Vous ne pouvez pas masquer la chaîne de connexion et les paramètres des développeurs qui déboguent l'application.

Dans un environnement d'entreprise, nous (développeurs) utilisation l'authentification Windows pour accéder à SQL Server.

+0

Dites que vous avez un appSetting qui vous donne le nom du conteneur de stockage blob azure. Vous voulez protéger cela des attaquants, juste parce que. Les développeurs peuvent le voir, pas de problème. Vous ajoutez votre paramètre d'application à azur afin qu'il soit injecté dans votre 'app.config' à l'exécution. Mais la valeur n'a pas été supprimée de 'app.config' car les développeurs en ont toujours besoin. Comment alors vous protégez-vous complètement contre quelqu'un décompilant votre application et accédant aux informations «sensibles». – SB2055

+0

Dans la chaîne de connexion Azure above, il y a [Paramètre d'application] (https://i.stack.imgur.com/xZu4W.png). Nous gardons normalement la configuration de l'application ici. Est-ce que je manque quelque chose? – Win

+0

Votre développeur utilise-t-il des chaînes et des paramètres de connexion Azure lors de son développement local? – Win

0

Si vous êtes à la recherche de secrets de sécurisation/chaînes de connexion du développeur, optez pour Azure Key Vault qui est conçu pour protéger tous vos secrets de tout le monde. Chaque secret sera exposé comme un URI au développeur final pour consommer via REST. Pour cela, vous devez register your application avec Azure AD car KeyVault demandera à AD Token de fournir des informations secrètes.