您的位置:首页 > 编程语言 > Java开发

Cookie自动登录小记

2017-04-29 16:48 99 查看
通过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就可以用他人的用户名,密码自动登录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息