作为一个更广泛的问题,我想问一下当前保护网站登录的最佳策略是什么。我知道所有的基础知识,比如加盐密码、散列密码以及使用 SSL 加密传输,但我觉得这可能并不总是足够的。那里最好的“防黑客”方法是什么?
问问题
85 次
2 回答
1
你的点已经是最重要的了,另外你可以这样做:
- 使用像 BCrypt 这样的慢速密钥派生函数来散列密码。
- 将X-Frame-Options添加到登录页面的 HTTP 标头中,这样页面就不会显示在 iframe 中。这有助于防止点击劫持。在 PHP 中,这看起来像这样:
header('X-Frame-Options: DENY');
. - 将Content-Security-Policy添加到登录页面的 HTTP 标头中。如果浏览器支持 CSP,这可以有效地防止跨站点脚本。在 PHP 中,它看起来像这样:
header("X-Content-Security-Policy: allow 'self'");
. - 在登录页面重新生成会话 id,使会话固定更加困难。
- 整个站点使用HTTPS,这样可以避免很多问题。如果您需要在 HTTPS 和 HTTP 之间切换,则使用单独的 cookie 进行身份验证,请查看此示例。
- 如果您的站点仅是 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 回答