Java-对同一用户频繁访问的控制
如题,不知道大家在做Java开发的时候,是否碰到过类似的需求,即 对同一用户频繁访问的控制。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题,不知道大家在做Java开发的时候,是否碰到过类似的需求,即 对同一用户频繁访问的控制。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
这很简单,你只需要做一个Cookie,制定一个记录目标的方法和一个目标消除的方法,例如用户打开某个网页,关闭某个网页,在Cookie中做+1或-1操作。然后在设置的过滤器中加上这个Cookie值判断,例如有一个网页你需要控制,那么你需要以该网页的URL为其Cookie名,访问次数为其值,做出一个Cookie。
当然一个网页的URL直接为Cookie名是不行的,但你可以对网页URL进行转换,转换成能作为它的名字的,唯一且特殊的字符串。
PS:针对下面的评论做个说明,这里使用Cookie是妥当的,因为当前的目的是解决用户频繁登录,以避免黑客的频繁访问攻击策略。更好的办法是Cookie+数据库标志位,做一个数据库标志位,能让一个用户账户只登录一次或者有限次数,Cookie可以限制一台计算机内访问用户的数量,比如我在Cookie里限制保存5个用户信息,当超出这个范围的时候,会将当前用户信息以进入队列的方式安排在Cookie值的末尾。且每次访问一个网页时,过滤器会判断Seesion中的用户信息是否在Cookie中,如果有则继续,如果没有则需要重新登录。
mod_evasive,一个apache模块