我正在为一个网站编写登录脚本,我需要一些指导。我担心它的安全性..
涉及两件事,登录页面和登录类,我管理安全性如下..
login.php 中的表单有一个令牌,当用户提交表单(目标为“php_self”)时,我调用该类并:
- 验证令牌
- 检查用户是否未被阻止
- 使用 bcrypt 检查密码是否正确。
- 如果登录失败,则将该用户上次登录的尝试次数和日期时间存储在数据库中
- 如果它是第二次尝试,我将 recaptcha 放入表格中。验证码通过 jquery/ajax 进行验证(出于可用性原因),并在提交后在类中再次验证服务器端(以防有人强制 ajax post 调用)..
- 如果第 5 次尝试失败,该帐户将被锁定 10 分钟。
您是否发现任何安全漏洞?
我找到了一个,不知道如何修复它。
如果失败尝试是“x”并且需要重新验证,用户可以单击“登录页面”链接(不刷新),并找到没有重新验证的表单(因为尝试为 0)。我可以创建一个会话变量“尝试”,但是这个可以和ajax调用一样强制,对吗?
在此先感谢您的帮助