在我作为Azure应用服务托管的网络应用中,我在web.config
进行了以下测试:
<connectionStrings>
<add name="ProductionConnection" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:something.database.windows.net,1433;Initial Catalog=DatabaseName;User Id=admin@sssdddr;Password=Pass@word1;Trusted_Connection=False;Encrypt=True;Connection Timeout=30; MultipleActiveResultSets=True" />
</connectionStrings>
我尝试在此处遵循一些基本的安全最佳做法,因此我已将连接字符串移至我的网络应用的Application Settings
部分:
这个特殊的设置是一个糟糕的例子,因为理想情况下我只有ProductionConnection
存储在Azure中而从未在本地使用过 - 但对于其他连接字符串而言appSettings
在本地和生产中使用应该受到保护,在本地开发时应该如何处理这些值?
答案 0 :(得分:1)
如果您正在寻找来自开发者的保密/连接字符串,请转到Azure Key Vault,以保护所有人的所有秘密。每个秘密都将作为URI公开给最终开发人员以通过REST使用。
为此,您需要使用Azure AD register your application,因为KeyVault会请求AD令牌提供机密。
答案 1 :(得分:0)
我的意思是不应该烘焙连接字符串值/ app设置 进入应用程序的bin目录
连接字符串通常位于web.config文件中。 web.config永远不会在bin文件夹中;我们通常把它放在应用程序的根文件夹中。
我认为您的意思是存储用户名和密码等敏感信息以访问SQL Server。您无法隐藏正在调试应用程序的开发人员的连接字符串和设置。
在企业环境中,我们(开发人员)使用 Windows身份验证 来访问SQL Server。