当前位置: 代码迷 >> Java Web开发 >> 自动登录有关问题
  详细解决方案

自动登录有关问题

热度:11   发布时间:2016-04-14 08:59:14.0
自动登录问题
网上说的很多自动登录的加密什么什么的,大概思路也就是把用户名,密码保存到Cookie里同时将用户信息保存到session里,登录以后来解码验证Cookie.
这种方式,如果Cookie被复制的话,基本就是无用功.最多也就是无法窃取密码.
然后我考虑保存Cookie的同时,将JSESSIONID也保存到Cookie,这样的话,在服务器不重启的情况下,校验JSESSIONID和Cookie中加密的JSESSIONID是不是匹配,匹配的话才实现自动登录.
这种方式,服务器重启以后就会生成新的JSESSIONID. 这种方式和仅仅只保存JSESSIONID到Cookie中好像也没有太大的区别. 求指点.
------解决思路----------------------
你的思路不对。以前,我刚学编程的时候,以为自动登录如你所说的那样,在客户端存用户名和密码。
现在,我知道,那是不安全的,因为密码也有机率被破解的,是你不可控的。

我给你的思路是,在客户端存cookie,cookie中的值是一个随机字符串A,A对应的是自动登录表中的某条记录,所以,你需要建立这样的一张表。

字符串A不能是记录ID,否则容易被修改,表中的这条记录记录了用户ID,自动登录失效日期(当然,你的cookie也要设置失效日期),也可以包含客户电脑的一些识别代码(假如可以的话)。

这样,用户打开网站时,你读取这个cookie,如果读到了,且没有失效的话,就自动给用户生成session,这样就达到了自动登录。

以前,为避免cookie被清除,会用flash的cookie,但360现在能直接清除flash cookie,所以,你无法达到用户清除cookie后实现自动登录。

自动登录只是为了方便用户,不是一个必须要有的功能,所以,用户清理就清理吧。
  相关解决方案