论坛首页 Java企业应用论坛

登录安全问题策略

浏览 13235 次
精华帖 (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,感觉不好,但标签怎么写又没查到,只晓得标签可以读,希望可以指点

欢迎大家提供想法

  • 大小: 3.3 KB
   发表时间:2011-04-22  
验证码有两个东西

recaptcha

jcaptcha

0 请登录后投票
   发表时间:2011-04-22  
liukai 写道
验证码有两个东西

recaptcha

jcaptcha


不是验证码的问题

是客户不要验证码,但要保证安全又必须要  --出现三次错误输入,你就必须页面上出现验证码,并且服务器端也要严重验证码是否输入正确。

我说的是处理这个的方式,安全和易于使用
0 请登录后投票
   发表时间:2011-04-22  
缓存。。 时间设置为24小时。
0 请登录后投票
   发表时间:2011-04-22  
mouer 写道
缓存。。 时间设置为24小时。

能详细说说吗?哪的缓存??
0 请登录后投票
   发表时间:2011-04-23  
楼上说的可能是服务器缓存。
0 请登录后投票
   发表时间:2011-04-23   最后修改:2011-04-23
毕竟输错三次24小时内都要验证码的人群占少数, 并且即使整个人群都要到数据库记录和查询IP, 您们的系统也应该要设计成能承受的, 何况是占少数的人群. 
0 请登录后投票
   发表时间:2011-04-23  
其实要达到安全性最高 还是将信息存入数据库 因为客户端的cookie 用户随时都可以删除掉 甚至可以关闭浏览器的cookie

使用spring-security 在数据库里面存储用户登陆的ip 根据ip判断 错误次数

自己定义一个过滤器 加入到spring-security的过滤器链内 可以对前台进行任何自己想要的认证方式

不管怎么做 只能说是减少风险 没有绝对的安全
0 请登录后投票
   发表时间:2011-04-23  
如果你真的要用Cookie,我觉得你程序里每次登陆都去判断验证码,只不过当用户输入3次错误后再次登陆时你让验证码输入框在页面显示出来。如果用户是前3次或者是过了24小时后登陆的话,你将验证码框在页面隐藏并将验证码的值默认在上面。不知道我的理解对不对。
0 请登录后投票
   发表时间:2011-04-23   最后修改:2011-04-23
可以通过js设置cookie
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics