jsp 如何登录三次失败后 系统拒绝登录

jsj_126abc 2011-10-11 07:08:14
jsp 如何登录三次失败后 系统拒绝登录,在用JSP做某个系统时,可限定用户登录次数,如何登录次数超过某个值时,则拒绝用户登录,用Java 或JSP如何做到?
...全文
853 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
DwGoing 2014-05-05
  • 打赏
  • 举报
回复
引用 14 楼 wode123ppt 的回复:
推荐的做法,用js的cooking来做,不涉及到数据库,减轻了服务器的压力
放在cookie里,那不是换台电脑又能继续登录?
云舜言传 2014-05-01
  • 打赏
  • 举报
回复
我这几天也在做这个东西,请各位给我指点儿一下,必要的时还希望给点儿代码块也可以啦,谢谢啦。
yuguanquan1990 2014-05-01
  • 打赏
  • 举报
回复
登陆验证什么的尽量不要用数据库,如果突然断电会导致一些意想不到的事,比如,你服务器可以做一个Map保存连续登陆错误次数和账号,超过3次就在一定的时间之内禁止登陆,这样,可能还需要往里面再存一个时间,具体的数据结构可以自己设计
小V小V志 2011-10-16
  • 打赏
  • 举报
回复
只能持久化了。。。
xiaofan0204 2011-10-16
  • 打赏
  • 举报
回复
使用Cookie,这是最好的办法!
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 niuniu20008 的回复:]

引用 29 楼 bao110908 的回复:
这种需求是不现实的。我只要知道你的用户名就可以让你用不了这个系统了!

怎么不现实?使用这种功能的多是网银、支付等网站。特定时间密码连续输入3次不正确,就可以让该用户当天内或者24小时内不再登陆。
[/Quote]

既然是现实的话,就弄吧
hailinger14 2011-10-16
  • 打赏
  • 举报
回复
写个静态HashMap,每隔24小时清空一次
里面放用户ID,失败次数
登陆时判断一下失败次数是不是大于3,如果大于3就不允许登陆

Cookie的话 人家清空Cookie就可以在来3次,这样无限
Session的话 人家关闭浏览器再开一个就可以再来3次,无限
数据库的话 可以确保没问题,可是额外增加了数据量
雨天要吃饭 2011-10-16
  • 打赏
  • 举报
回复
这种需求还是很多滴!
wenzhiyinghen 2011-10-16
  • 打赏
  • 举报
回复
设置一个值等于3当进行验证的时候就-1在判断是否下于,在进行提示
lh412552703 2011-10-15
  • 打赏
  • 举报
回复
学习了……
RieWorm 2011-10-15
  • 打赏
  • 举报
回复
我同意24#的做法
RieWorm 2011-10-15
  • 打赏
  • 举报
回复
我觉得没必要涉及到数据库,用一个计数器就可以解决了吧!
weblshy 2011-10-15
  • 打赏
  • 举报
回复
放数据库里太慢了吧??
niuniu20008 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 bao110908 的回复:]
这种需求是不现实的。我只要知道你的用户名就可以让你用不了这个系统了!
[/Quote]
怎么不现实?使用这种功能的多是网银、支付等网站。特定时间密码连续输入3次不正确,就可以让该用户当天内或者24小时内不再登陆。
niuniu20008 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tt14344 的回复:]
实现方式一:
session+数据库字段实现

1.sesion中记录用户登录失败的次数。
2.数据库字段记录用户登录3次失败以后需要解锁的时间。例如:12:00登录3次失败,锁定1小时,那么下次可以正常登录的时间就是13:00。当然时间记录方面肯定是带年月日什么的。


那么剩下的你实现锁定就很简单了。每次登录时只需要检查登录锁定时间是否大于当前系统时间,如果是就为锁定状态,不进行……
[/Quote]
好幼稚的想法,浏览器一关闭,你的session就失效。
coooliang 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 bao110908 的回复:]
这种需求是不现实的。我只要知道你的用户名就可以让你用不了这个系统了!
[/Quote]
确实。
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 eclipsejob 的回复:]

不要写到数据库,影响速度,登陆判断时这样写 if(){成功}else{失败;记录时间然后+1 第二次进到这里时用上次时间减当前再+1,第三次进这来用第一次时间减当前时间再+1,好比说这是一小时内登陆的次数}总共三次,登陆前js验证用ajax把后台的那个失败次数获取到,如果>=3就 button.style=灰/无
[/Quote]
这样的比较好
我觉得或者直接放在一个全局的,每次有一个其他的用户名登陆,就随机的给他一个变量,然后放在context里面里面,让他递增,等到超过三次的时候,给他一个提示,告诉他不让他登陆的。可以让他保存在一个相应的文件了面
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 driftking 的回复:]

1、设计一张表,每次登录时存进入;每次登录时按照人的逻辑检查
2、设计一个清楚记录和解锁程序,比如登录错误三次后锁定1小时,到1小时后清除表中记录,并解锁
[/Quote]
登陆的时候把登陆的次数就放入一个表里面是不是有点大材小用啊
zhangjavin 2011-10-13
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 zhangjavin 的回复:]
引用 13 楼 walkman_22 的回复:
感觉还是用session方便

如果用户清了缓存呢?
[/Quote]
不好意思 引错地方了 我是指用COOKIE的做法
zhangjavin 2011-10-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 walkman_22 的回复:]
感觉还是用session方便
[/Quote]
如果用户清了缓存呢?
加载更多回复(25)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧