Cookie自动登录小记

来源:互联网 发布:怎样在mac上qq群视频 编辑:程序博客网 时间:2024/05/16 17:16

通过cookie自动登录就是将用户名,密码保存在cookie中,然后下次获取cookie中的用户名,密码实现自动登录,这也是为什么盗取他人的cookie可以登录你注册的网站原因。(没有那些验证码)


servlet中代码:

将用户名,密码保存在cookie中,然后下次取出来String username = request.getParameter("username");String password = request.getParameter("password");Cookie[] cs = request.getCookies();Cookie cookie = new Cookie("username", username);Cookie cookie02 = new Cookie("password",password);response.addCookie(cookie);response.addCookie(cookie02);这样无论下次就可以取出去来直接用作登录,一般会MD5啊什么加密的,没有我这种直接用,这只是为了简化实现自动登录。

jsp中测试代码:这里只是为了简化实现可视化效果

<%String userName = "null";String password = "null";Cookie[] cs = request.getCookies();if(cs!=null&&cs.length>0){for(Cookie c:cs){if(c.getName().equals("username")) userName = c.getValue();if(c.getName().equals("password")) password = c.getValue();}}%>
function init(){var userName = "<%=userName%>";var password = "<%=password%>";console.info(userName+"   "+password);}

刷新页面

第一次输出的是 Null null
第二次输出的就是: King 123456 这个用户名,密码了,因为页面在加载时下面这里被替换成cookie中用户名,密码
String userName = "null";String password = "null";
if(c.getName().equals("username")) userName = c.getValue();if(c.getName().equals("password")) password = c.getValue();

因为第一次没有执行servlet中代码设置cookie,等点击登录按钮获取到username和password才设置cookie,所以第二次jsp中代码才可以从cookie中获取到username和password

修改cookie,这里用的是chrome浏览器注意先要清空以前设置的cookie,这样实验才可以进行。
1.刷新查看控制台输出为空

2. 设置cookie,这里设置的用户名密码为 king001 123 和页面输入的不一样
在console中使用document.cookie可以查看cookie ,document.cookie="XXX" 可以设置cookie (仅在chrome中用过,其他浏览器不知道支不支持)

4.查看控制台输出,变成了自己设置的用户名密码,不是登录时输入的了

1.点击登录获取servlet中设置了cookie为king,123456,

2.手动修改cookie中username,password   king001,123

3. 由于cookie有生命周期,还没有消散,所以保存在cookie中的用户名就变成了手动设置的用户名,密码

4. 页面获取cookie中用户名,密码,就输出上图样子


一般(指那些校验不强的网站)在登录一个网站发送到后台前拦截住请求然后修改其中cookie就可以用他人的用户名,密码自动登录。









0 0
原创粉丝点击