永发信息网

验证响应中是否至少有一个会话标识未更新

答案:1  悬赏:20  手机版
解决时间 2021-03-25 12:42
验证响应中是否至少有一个会话标识未更新
最佳答案
我的系统在做AppScan安全扫描时,爆出一个高危漏洞:会话标识未更新。提供的解决办法是,在用户登录时始终使用新的会话。
我仔细查看了我的系统。原来在用户进入登录页面,但还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说还是以前的那个session(事实上session也确实不会改变,因为没有建立新session,原来的session也没有被销毁)。
后来我做了如下改变。在我的登录servlet里面将用户刚进入登录页面的那个session用invalidate()销毁掉,在用户信息匹配成功后,再建立一个新session,将用户信息放到session中去。
本来以为这种做法应该可以解决问题了,但是再扫描发现问题还存在。再一查看,发现新建立的session与原来被销毁的session的id居然还是一样的。真是搞不懂了!
系统背景:j2ee,jboss
以下是我的登录servlet的代码:

···
HttpSession session = request.getSession(false);
System.out.println(session.getId());
if(session!=null){
session.invalidate();
}

···
···

HttpSession session1 = request.getSession(true);
System.out.println(session1.getId());
session1.setAttribute("",***);
后来我找了好久才发现,之所以将会话invalidate没有用,是因为invalidate方法不是真正的将session销毁,只是将session中的内容清空,所以当我invalidate以后再新建session,新建的session其实不是新的,是将之前的session重新启用了。于是session的id不变就不奇怪了。
要怎么才能真正的将session销毁掉呢?看看下面的办法:
在登录页面上加上一段代码:
request.getSession().invalidate();//清空session
Cookie cookie = request.getCookies()[0];//获取cookie
cookie.setMaxAge(0);//让cookie过期
然后用户再输入信息登录时,就会产生一个新的session了。
虽然我的系统里面没有使用cookie,但是只要是web系统就离不开cookie。系统里面没有使用cookie是我没有用cookie来保存数据、标示用户等等。但是服务器跟踪会话状态就是用的cookie。既然cookie是服务器用来跟踪会话状态的,那么如果cookie过期了,会怎么样?--不用解释了吧。回答了这个问题,怎么让会话真正被销毁也就不难回答了。
我在登陆页面上加的那段代码的作用就是,将用户进入登陆页面时所产生的会话也就是session清空,然后让跟踪这个会话的cookie过期,这样服务器就不再掌握有关这个会话的任何信息了。要想与服务器继续通信,就要产生一个新的会话才行。于是会话标示就更新了!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
本人为YY新手,CV新人,女,求YY练习频道号,
请问谁知道G711智选商城的专业财经视角是指什
大吉大利永平安好年好景好前程那句是上联
清明上河图的汴河一节重点介绍了什么
因为借钱,得罪了多少人,因为还钱,看清了多
北京市海淀区梅所屯512公交车总站怎么走啊、
我想把在百度回答而被删除的答案删除,怎么删
范泾一帆车行我想知道这个在什么地方
请求把里面的小传两个字去掉
可以将豆子煮熟再打豆浆么
无节操情侣头像,求原图~~
老板油烟机5900与方太油烟机jq01ts哪个吸烟效
拥可以组词什么
我低压107高压153但是没什么感觉
Cmag7 和弦
推荐资讯
新人 求 含有“稽”字的成语
when doing sth是不是时状从
60v32ah的电动三轮车上能用60v60ah的电瓶吗
哪类人最能从股市赚到钱
鄙视腾讯
建行卡可以转账到农业银行卡吗?
玉林地区有谁收生天冬?
父母未离婚,而母亲却在外面有人了,我该怎么
问题谁来帮我
人的血型属于A、B还是O血型决定于红细胞表面
单选题在某市开展的创建国家环境保护模范城市
哪里有做脊柱侧弯的?瑞祺祥做支具怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?