如何适当地确保登录安全



作为一个更广泛的问题,我想问一下目前保护网站登录的最佳策略是什么。我知道所有的基本知识,比如盐析密码、哈希密码以及使用SSL加密传输,但我觉得这可能并不总是足够的。最好的"防黑客"方法是什么?

你的分数已经是最重要的了,此外你还可以这样做:

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

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

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

最新更新