【问题标题】:How safe is it to keep connection string in configuration file在配置文件中保留连接字符串有多安全
【发布时间】:2013-02-19 06:47:57
【问题描述】:

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

【问题讨论】:

标签: asp.net web-config connection-string


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您可以加密您的 web.config 密钥。阅读这里了解更多Encrypt web.config

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

    Encrypt web.config

    【讨论】:

    • 好的,我可以加密we.config了。但是,使用 web.config 有什么好处呢?反正它不会是正常的可读值,所以我不能手动更改它。
    猜你喜欢
    • 1970-01-01
    • 2017-07-06
    • 2015-08-19
    • 2011-05-14
    • 1970-01-01
    • 2020-03-17
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多