2013-02-19 68 views
2

我见过很多人将它们的连接字符串保存在web.config文件中,而不是对它进行硬编码。但是我发现它非常危险,尤其是在所有用户使用相同连接字符串的情况下。这意味着任何有权访问Web配置文件的人都可以很容易地获得数据库的用户名和密码,并执行各种严肃的事情。是否能够修改连接字符串而不挖掘值得这种权衡的代码?在配置文件中保留连接字符串还有其他好处吗?将连接字符串保存在配置文件中有多安全

+0

最终用户将无法访问web.config,admin将通过阻止访问它来解决此问题。 http://msdn.microsoft.com/en-us/library/dx0f3cf2(v=vs.80).aspx – 2013-02-19 06:50:18

回答

5

的Web.config基于ConnectionString的是不安全的,因为一个可以读取它。但想一想,如果一个人可以阅读你的web.config,意味着他可以编辑你的服务器上的任何文件,因为他可能已经破解或获得访问文件。所以,这并不重要。但是,为了保证更多的安全,你可以做到以下几点:

  1. 加密连接字符串,并将该加密的字符串在Web.config中,然后对其进行解密,并通过一个DLL文件中读取。

  2. 创建一个DLL并将连接字符串放入该DLL中,稍后添加对该DLL的引用并使用连接字符串。

但是使用Web.config将允许您根据需要更改连接字符串。就像我必须在5台不同的服务器上运行站点一样,用于开发,测试生产目的,所以我把所有的web.config放在不同的位置,而不是随时更改代码。因此,根据您的需要和您的服务器配置方式,一种或其他方法总是好是坏。

1

你可以加密你的web.config密钥。读到这里的作为似乎更Encrypt web.config

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" 

Encrypt web.config

+0

好的,我可以加密we.config。但是,那么使用web.config有什么好处呢?无论如何,它不会是正常的可读值,所以我不能手动更改它。 – 2013-02-19 07:58:18

相关问题