2010-04-16 60 views
3

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

回答

6

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

您也可以加密的web.config部分,各部分用asp.net 2.0开始

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

如果你能保持它的machine.config中,这将确保它只是住在那机器,没有其他地方。 Web.Configs需要放置在每个环境中,尽管可以保持每台机器的web.config不同,但随着时间的推移,这会变得很困难,因为必须保持它们全部同步。

0

没有一个安全的利益。有一个方便的好处,你不必重新编译使用这些值的类,如果它们发生变化的话。

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

但是,如果它们被获得,那么它们中的任何一个都没有任何安全性。 web.config文件易于阅读,并且使用Reflector等工具,可以轻松查看编译程序集中的常量。

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

1

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

相关问题