我试图限制最大登录尝试次数。 这是我目前正在做的事情:
1。)将登录计数器存储在会话中
2.。)每次登录尝试都会比较存储在会话中的计数器
3。)如果计数器较小,则最大尝试次数>>增加counter
4.如果计数器等于最大尝试数>>将会话的last access time
与current time
进行比较。
如果差异超过(例如20分钟),那么destroy the session
(允许用户进行尝试)。
如果差异较小,则重定向到错误页面。 这一切都运行正常,但即使用户只是浏览其余的Web应用程序(登录页面除外),此方法也会失败。
现在考虑一下:
一个用户已超过最大登录尝试次数,因此他决定浏览应用程序的其余部分20分钟。但即使在20分钟后,登录尝试也会失败。
这是因为counter
存储在session
中并且用户正在浏览网络应用的同一会话,因此last access time
与{{1}之间存在差异因为会话不大于current time
因此它失败了。
那么我该如何解决这个问题。
谢谢。
答案 0 :(得分:1)
您可以在会话中使用session create time
或存储用户超出登录尝试的时间。因此,请使用其中一个时间与last access time
进行比较。