锁定老帖子 主题:登录安全问题策略
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-22
客户感觉每次都要输入验证码不爽,那么你会怎么做? 三次输入错误,24小时内都要验证码 我知道的三种解决方法: cookie session 数据库表记录 三种存储方式,数据库最安全,还可以判断下对方的ip,根据对方ip存储,可是我们项目是门户型网站,这个用户量是很大的。 cookie--相对还好,防君子不防小人,如果正常用户输入三次错误,24小时内用户都要重新输入,还可以给用户一种安全的感觉,增加了用户体验 session--浏览器一关就挂掉了,好写,用户体验可能比不上cookie 我最后决定用cookie搞 项目是web是struts2写,在struts里面写个成员变量private Integer loginTimes; Cookie cTimes = WebUtils.getCookie(ServletActionContext.getRequest(), loginError); String Times = null; if (cTimes != null) { Times = cTimes.getValue(); loginTimes = Integer.valueOf(Times); } if ( 用户不存在) { loginMessage = "用户名和密码不匹配,请重新输入"; /**标志cookie是否记录错误值**/ request.put("loginError", "error"); if(loginTimes==null) loginTimes=0; return LOGIN_JSP; } jsp里面直接写cookie,感觉不好,但标签怎么写又没查到,只晓得标签可以读,希望可以指点 欢迎大家提供想法 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-22
验证码有两个东西
recaptcha jcaptcha |
|
返回顶楼 | |
发表时间:2011-04-22
liukai 写道 验证码有两个东西
recaptcha jcaptcha 不是验证码的问题 是客户不要验证码,但要保证安全又必须要 --出现三次错误输入,你就必须页面上出现验证码,并且服务器端也要严重验证码是否输入正确。 我说的是处理这个的方式,安全和易于使用 |
|
返回顶楼 | |
发表时间:2011-04-22
缓存。。 时间设置为24小时。
|
|
返回顶楼 | |
发表时间:2011-04-22
mouer 写道 缓存。。 时间设置为24小时。
能详细说说吗?哪的缓存?? |
|
返回顶楼 | |
发表时间:2011-04-23
楼上说的可能是服务器缓存。
|
|
返回顶楼 | |
发表时间:2011-04-23
最后修改:2011-04-23
毕竟输错三次24小时内都要验证码的人群占少数, 并且即使整个人群都要到数据库记录和查询IP, 您们的系统也应该要设计成能承受的, 何况是占少数的人群.
|
|
返回顶楼 | |
发表时间:2011-04-23
其实要达到安全性最高 还是将信息存入数据库 因为客户端的cookie 用户随时都可以删除掉 甚至可以关闭浏览器的cookie
使用spring-security 在数据库里面存储用户登陆的ip 根据ip判断 错误次数 自己定义一个过滤器 加入到spring-security的过滤器链内 可以对前台进行任何自己想要的认证方式 不管怎么做 只能说是减少风险 没有绝对的安全 |
|
返回顶楼 | |
发表时间:2011-04-23
如果你真的要用Cookie,我觉得你程序里每次登陆都去判断验证码,只不过当用户输入3次错误后再次登陆时你让验证码输入框在页面显示出来。如果用户是前3次或者是过了24小时后登陆的话,你将验证码框在页面隐藏并将验证码的值默认在上面。不知道我的理解对不对。
|
|
返回顶楼 | |
发表时间:2011-04-23
最后修改:2011-04-23
可以通过js设置cookie
|
|
返回顶楼 | |