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