一个用户登录系统,如果他一分钟之内连续登录3次,就让他在15 分钟之内无法再登录,这种方法的思路是什么,
每次登录的时候,去查最近15分钟内,是否存在连续3次登录发生在一分钟之内的把登录日志存入数据库,登录的时候进行一些查询判断,对系统性能来说应该没什么影响
这是个方法. 不过总查数据库应该是有些不妥的.!
不过暂时还想不到更好的办法.! 再去想想如果你不想用数据库的形式的话,用session 存下试试。
先声明下,我没用过:
在用户登录时候,如果成功不记录session,如果登录不成功,记录下session +1;
到第三次,就不让登录了。session 的有效期设置为15分钟。.setMaxInactiveInterval(15分钟);当然,感觉这样有个弊端,session的丢失是根据客户端的浏览器关闭来的。如果以后不需要日志查询和审计,可以使用缓存而不是数据库,把每次登陆的信息(登陆名、时间) 这些放入缓存。然后每次登陆时查询缓存就可以了。呵呵,好方法啊.但这样会不会数据库服务器很累啊