创建了Azure云服务,并希望立即部署它。连接字符串(对于Azure)包含可读的用户名和密码。这是安全的(并且是在将应用程序部署到Windows Azure之前和期间Web.config和App.config文件中的连接字符串的关键漏洞)?如果不是最安全的方法是什么。
同时找到答案(见下文)。然而,这不是一个简单的方法......
提前感谢您的帮助!
答案 0 :(得分:0)
最快捷的方法是将其作为appsetting放在服务器web.config中,并直接从代码隐藏中读取运行时的值。 在面向IIS的公共面向Web服务器上无法查看web.config文件。
的Web.config:
<configuration>
<appSettings>
<add key="ConnectionString" value="User Id=myusername;Password=myPasswordc;DataSource=my.datasource/>
</appSettings>
</configuration>
代码:
string CS = ConfigurationManager.AppSettings["ConnectionString"];
AzureService myAzureService = new AzureService(CS); <-- or similar
在切线上: 如果黑客这样做,任何通过http(客户端发送到服务器)发送的TCP / IP数据包都可以被嗅探;
如果要从/向客户端/服务器发送身份验证详细信息;任何身份验证详细信息都可以以明文形式发送到Azure服务。(通过http)
如果这是您的预期设置,则应考虑通过Https运行云服务,创建一个安全套接字(隧道),其中任何明文身份验证都受SSL隧道保护
答案 1 :(得分:0)
有关此主题的一些信息,请参阅Windows Azure SQL Database Connection Security。它看起来有点过时了:例如,使用现代工具(VS2103)构建Pkcs12 Protected Configuration Provider的推荐方式。也许还有另一种更简单的方法...... 对于Azure中的WebSites服务,使用应用程序设置(配置选项卡)有一种更简单的方法,另请参阅Keep connection string secure when deploying to Azure