安全的方法存储密钥,asp.net的密码

时间:2008-10-13 19:51:35

标签: security

存储网站密钥和/或密码的最佳做法是什么?这些密钥适用于各种第三方Web服务。最好将它们放在Web.config文件中,还是放在数据库中,或以某种方式加密?

3 个答案:

答案 0 :(得分:4)

您可以将加密值存储在.config文件中,ASP.NET 2.0将动态解密它们。

您的配置如下所示:

<configSections>
   <section 
      name="sampleSection" 
      type="System.Configuration.SingleTagSectionHandler" 
   />
</configSections>

<MySecrets
   FavoriteMusic="Disco" 
   FavoriteLanguage="COBOL" 
   DreamJob="Dancing in the opening ceremonies of the Olympics" 
/>

然后从命令行运行以下命令:与配置文件在同一目录中:

aspnet_regiis -pef MySecrets .

来自K. Scott Allen:

http://odetocode.com/Blogs/scott/archive/2006/01/08/2707.aspx

答案 1 :(得分:3)

假设您的数据库无法从外部访问,或者您已将其正确锁定,这将是存储密钥的首选方式。这允许您的所有应用程序从相同的密钥/密码存储中提取,从而使更改变得非常快速和简单。

答案 2 :(得分:2)

取决于价值变化的频率。如果它们永远不会改变,那么我会将它们保存在您的源代码中。

我会远离存储Web.Config中更改的数据,因为更改它会强制重新启动App池。

我的投票是将它们加密存储在数据库中,并提供一种简单的方法来更改值(例如,在缓存中存储值并在用户更改它们时刷新它们。)