Cookie自动登录小记

通过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就可以用他人的用户名,密码自动登录。









posted @ 2017-04-29 16:48  伟衙内  阅读(8)  评论(0编辑  收藏  举报