web.config比类更安全吗?

时间:2010-04-16 17:45:26

标签: c# asp.net security web-config private-key

我正在阅读关于ASP.NET和第三方API的教程,它提到API KEY和SECRET KEY应存储在web.config文件中,以保证生产服务器上的安全性,而不是使用它们的类中。但是,我不太确定web.config文件比类更安全吗?我理解将它存储在配置文件中的便利性,但是我没有看到安全性的好处吗?

4 个答案:

答案 0 :(得分:6)

对于初学者,您可以快速更新web.config中的API密钥。您将不得不重新编译该类并重新部署该类。

您还可以加密以asp.net 2.0开头的web.config部分

http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx

如果你可以将它保存在machine.config上,那将确保它只存在于该机器上而不是其他地方。 Web.Configs需要放在每个环境中,虽然你可以保持每台机器的web.config不同,但随着时间的推移这会变得很困难,因为你必须让它们保持同步。

答案 1 :(得分:1)

您可以加密web.config的选定部分。

这是一篇关于超级简单方法的博客文章。

http://odetocode.com/blogs/scott/archive/2006/01/08/encrypting-custom-configuration-sections.aspx

答案 2 :(得分:1)

如果它只存在于服务器上的web.config中,那么它也不会位于每个开发人员的计算机上。这使得它更加安全,因为泄露秘密的风险会降低。

答案 3 :(得分:0)

没有安全方面的好处。有一个方便的好处,因为您不必重新编译在更改时使用这些值的类。

从安全角度来看,这些类具有相同的安全级别。将无法下载web.config和任何类文件(在App_Code中)或编译的程序集(在bin文件夹中)(这些目录未映射到人们可以从中下载的虚拟目录)。

然而,如果获得它们,那么它们中的任何一个都没有安全性。 web.config文件易于阅读,使用Reflector等工具,很容易看到编译汇编中的常量。

web.config对编译程序集的唯一好处是您可以加密web.config文件的各个部分,如Scott Guthrie points out in his blog