1

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

4

2 回答 2

1

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

  1. 使用像 BCrypt 这样的慢速密钥派生函数来散列密码。
  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 进行身份验证,请查看此示例
  6. 如果您的站点仅是 HTTPS,那么您可以添加HTTP 严格传输安全标头。HSTS 可以防止用户(已经访问过您的网站一次)调用不安全的 HTTP 页面。这可以帮助对抗 SSL-strip。
于 2012-12-14T08:15:19.230 回答
0

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

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

于 2012-12-13T15:57:23.867 回答