网络安全是现在越来越重要,现在的各种攻击手段很多。比如URL参数的改窜,HIDDEN值的改窜等简单盗窃信息等。
session fixation攻击也是我们网站开发中必须要解决的一种安全隐患。什么是session fixation?
下面是网上的一个解释(http://hi.baidu.com/aullik5/blog/item/ebbed3a39e50bcabcbefd0d1.html)。
【先理解这个攻击,打个比方:
1. 你花钱买了一辆车
2. 你把车钥匙复制了一把
3. 你把这辆车卖给了一个冤大头
4. 冤大头同学花钱买了辆2手车,结果在某天你趁他不在,用事先复制好的钥匙把车开走了!
这个过程就是一个 Session Fixation 的过程,车钥匙就是 Session ID。
这类问题的本质在于:WEB应用在认证后没有改写或者更新session,从而导致了认证前的session还能使用。
如果攻击者事先能够获知该session ID,则可以欺骗用户使用该session ID进行认证,认证后,由于session ID不变,但是该session变成了一个认证后的session,从而攻击者可以直接使用该session ID以用户身份通过系统的认证。】
为了解决这个问题,我们可以在用户认证成功后重新生产session ID。因此解决方法有以下几种:
1.认证成功之前不使用session,认证成功后才生产session ID。这样别人伪装的那个session ID由于没有被使用,也就避免了被攻击了。但如果有错误登陆次数的限制功能的话,这个方法好像不可取。
2.认证成功之前使用session,但认证成功后再重新生成一个新的session ID,原理还是和1一样的。