2

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

4

2 回答 2

5

基于 Web.config 的连接字符串似乎是不安全的,因为可以读取它。但是想一想,如果一个人可以阅读您的 web.config,则意味着他无论如何都可以编辑您服务器上的任何文件,因为他可能已经破解或获得了对文件的访问权限。所以,其实也没什么大不了的。但是为了确保更多的安全性,您可以执行以下操作:

  1. 加密您的连接字符串并将该加密字符串放入 Web.config 中,然后对其进行解密并读取 DLL 文件。

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

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

于 2013-02-19T06:52:31.497 回答
1

您可以加密您的 web.config 密钥。阅读此处了解更多加密 web.config

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

加密 web.config

于 2013-02-19T06:52:13.093 回答