如何妥善保护登录?

时间:2012-12-13 15:51:37

标签: hash login passwords security

作为一个更广泛的问题,我想问一下目前保护网站登录的最佳策略是什么。我知道所有的基础知识,比如腌制密码,散列密码,使用SSL来加密传输,但我觉得这可能并不总是足够的。什么是最好的“防黑客”方法?

2 个答案:

答案 0 :(得分:1)

您的观点已经是最重要的观点,另外您可以这样做:

  1. 使用像慢密钥派生函数来散列密码。
  2. X-Frame-Options 添加到登录页面的HTTP标头中,以便无法在iframe中显示该页面。这有助于防止点击劫持。在PHP中,它看起来像这样:header('X-Frame-Options: DENY');
  3. Content-Security-Policy 添加到登录页面的HTTP标头中。如果浏览器支持CSP,则可以有效防止跨站点脚本。在PHP中,它看起来像这样:header("X-Content-Security-Policy: allow 'self'");
  4. 在登录页面上重新生成会话ID,以使会话固定更加困难。
  5. 对整个网站使用HTTPS,这可以避免很多问题。如果您需要在HTTPS和HTTP之间切换,请使用单独的cookie进行身份验证,请查看此example
  6. 如果您的网站仅限HTTPS,则可以添加 HTTP严格传输安全性标头。 HSTS可以阻止用户(已经访问过您的网站一次)调用不安全的HTTP页面。这有助于防止SSL剥离。

答案 1 :(得分:0)

根本不存储密码,而是使用SRP

http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol