php 中的sessionID 有放在 cookie 的 PHPSESSID 中的
服务端只认 PHPSESSID 的话,那么只要通过某种方式获取到了某一个合法的 PHPSESSID
攻击者就可以通过这个 PHPSESSID 伪装成合法用户,请求服务器,造成安全问题
在体验 cookie 和 session 保存数据的时候
发现 php 的 session 认证机制,是 cookies 中,如果有 PHPSESSID ,而其值不存在
那么,会重新创建一个 session
这时候,如果攻击者通过某种方式,让受害者以攻击者设置的 PHPSESSID 向服务器发起请求
那么受害者的 session 的数据就会存在这个 PHPSESSID 指向的 session 中
这样攻击者也可以通过这个 id 访问受害者的 session 的数据
然后查了文章后,发现这似乎就是会话固定攻击方式
这种方式的解决办法,通常是,在用户登录之后,就重新生成一个 sessionID
这样可以避免攻击者使用他的 PHPSESSID 伪装受害者访问服务器
还有的方法是,在服务端添加验证方式
不单单使用 sessionID 来验证
如,使用请求头中的部分信息和自定义的字段等组合,再加密,然后信息对比等等
具体方式应该有很多
只是总结下今天学习 cookie 和 session 机制的想法