Asp.net 在配置文件中保留连接字符串有多安全

Asp.net 在配置文件中保留连接字符串有多安全,asp.net,web-config,connection-string,Asp.net,Web Config,Connection String,我见过很多人将他们的连接字符串保存在web.config文件中,而不是硬编码。但我发现这非常危险,尤其是在所有用户使用相同连接字符串的情况下。这意味着任何有权访问web配置文件的人都可以轻松获得数据库的用户名和密码,并执行各种严肃的操作。在不深入代码的情况下修改连接字符串是否值得这样做?在配置文件中保留连接字符串还有其他好处吗?您可以加密web.config密钥。请阅读此处了解更多信息 基于Web.config的连接字符串看起来不安全,因为可以读取它。但想想看,如果一个人可以阅读你的web.co

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

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


基于Web.config的连接字符串看起来不安全,因为可以读取它。但想想看,如果一个人可以阅读你的web.config,就意味着他可以编辑你服务器上的任何文件,因为他可能已经侵入或访问了该文件。所以,这真的没什么大不了的。但为了确保更多的安全,您可以执行以下操作:

  • 加密您的连接字符串并将该加密字符串放入Web.config中,然后解密并读取DLL文件

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


  • 但是,使用Web.config将允许您根据需要更改连接字符串。就像我必须在5台不同的服务器上运行站点一样,为了开发、测试和生产目的,所以我将不同的web.config放在任何地方,而不是一直更改代码。因此,根据您的需要和服务器的配置方式,一种或另一种方法始终是好的或坏的。

    最终用户将无法访问web.config,管理员将通过阻止访问来解决这一问题。好的,我可以加密we.config。但是,使用web.config还有什么好处呢?它不会是正常的可读值,所以我不能手动更改它。
    aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"