修复shiro固定会话攻击漏洞(session fixation attack)

2020-12-26 18:44 阅读

固定会话攻击(session fixation attack)是通过给被攻击人一个带session信息的URL地址,然后诱导其登录。如果登录后session信息不变,攻击者提供session就变成了登录状态。Servlet容器允许URL地址后面增加;JSESSIONID=...的方式携带session信息。

所以必须在登录的时候,将原来的session作废,生成新的session。这里要注意的是,使用logout不能使session作废,而要用session的stop方法。代码如下:

Subject subject = getSubject(request, response);
// 此处不能使用 subject.logout(); 此方法无法让session作废,登录后还会继续使用原来的session。
subject.getSession().stop();
subject.getSession(true);
subject.login(token);
咨询
交流群
电话