在Web主机上存储密码或私钥的最佳方法是什么?

isp*_*iro 8 c# asp.net security web-hosting

我不是指不必使用的密码(例如网站上其他用户的密码- 在这种情况下我真的不需要存储它们.请参阅https://stackoverflow.com/a/ 1054069/939213.)所以简单地存储哈希不是一种选择.

我指的是将密码存储到SQL数据库以及共享服务器上的软件必须使用的私钥.

我认为没有真正安全的方法来做到这一点.我只是想知道在这种情况下最好的是什么.

我试图让他们远离黑客(在同一个网络主机上).不是其他有权查看文件的人.

这将是使用它们的ASP.Net代码隐藏.

Chr*_*ain 5

存储密码的最佳方法是不存储它。使用集成 (Windows) 身份验证连接到 SQL Server。这涉及以特定 (Windows) 用户身份运行 IIS 应用程序池,以及授予该用户登录数据库并运行所需查询的访问权限。

也可以看看SQL Server 集成身份验证模式

除了更安全之外,它的性能也更好。使用每用户连接字符串会破坏连接池。

编辑:

如果您绝对必须存储密码,则使用加密连接字符串是最佳选择。这可以使用 DPAPI 正确存储连接字符串和机器密钥,从而减少您搞砸并认为自己已经保护了它(实际上并没有)的可能性。

另外:加密 web.config 中的连接字符串


Dou*_*las 2

Windows 专门为此目的提供了数据保护 API (DPAPI)。查看该类ProtectedData以从 .NET 中使用它。

\n\n

DPAPI 的优点是您的敏感数据基于 Windows 用户\xe2\x80\x99s 登录凭据进行加密,这意味着除非您的 Windows 帐户遭到泄露,否则它是安全的。

\n