我一直致力于一个安全的登录/门户类型工具集,一般代码没有SQL注入,XSS等,我有很多东西来阻止会话劫持.
为每个页面重新生成会话的ID
在登录时将用户的IP与IP进行比较
在登录时将用户的user_agent与代理进行比较
会议时间很短
等等
我已经做了所有我能想到的停止劫持的事情,但是我仍然找到了可能的情况,并且想知道是否有人有任何想法.
想象一下,在防火墙后面有2个用户执行SNAT/DNAT的情况,因此两者都来自同一个IP.它们都是由同一地方提供的相同机器.一个连接到站点并登录,另一个复制PHPSESSID cookie并且可以简单地窃取会话.
这可能听起来像一个极端的例子,但这与我的工作地点非常相似,每个人都在防火墙后面,所以看起来是相同的IP,所有机器都由IT团队管理/提供,所以所有都有相同的版本浏览器,操作系统等
我试图想到另一种方式(服务器端)停止劫持或进一步最小化它,我想到一个令牌嵌入到每个URL(为每个页面更改),并检查.
我正在寻找想法或建议,如果你想提供你喜欢的代码或例子,但我对我的令牌想法的开箱即用的想法或评论更感兴趣.