最近我们从URL中删除了jsessionid,做了基于cookie的会话管理,以防止“会话劫持攻击”
但是我们发现当启用cookie并且后续请求URL没有jsessionid时,第一个请求URL始终具有jsessionid。
使用第一个网址的jsessionid我们可以直接点击工作流程中的其他页面
问题:是否有任何安全漏洞仅在第一次请求时暴露jsessionid?
有一个解决方案可以从第一个请求中删除jsessionid,但是想检查一下,如果它真的很容易要求更改
感谢 J
编辑:我澄清了我的疑问。谢谢你的回复。答案 0 :(得分:7)
您在此处所做的工作可以在某种程度上提高解决方案的整体安全性,但不一定会阻止会话劫持。
将会话ID放在URL中的安全问题是URL在各个地方公开(例如,复制和粘贴的URL可能会暴露实时会话,URL可以存储在代理服务器日志中,Web服务器日志和浏览器历史记录中),这可能允许攻击者获取有效的会话ID并访问您的用户数据。理想情况下,您应该从所有位置的URL中删除JSESSIONID,并且只使用cookie存储。
此外,如果您想要减少会话劫持,还需要考虑其他一些方面。
您需要在传递会话ID的所有网页上使用SSL(这是为了降低会话ID在传输过程中被截获的风险(例如,Firesheep攻击)。
如果在对用户进行身份验证之前设置了会话ID,则应确保在用户登录时发出新的会话ID。
如果可能的话,会话cookie应该使用httpOnly和安全标志,以降低它们通过明文渠道泄露的风险。
上有一些很好的附加信息顺便说一句,如果你对安全方面的问题有更多疑问,那么Security.stackexchange.com
就有一个专门针对该问题的堆栈交换网站答案 1 :(得分:2)
进行基于cookie的会话管理以防止“会话劫持攻击”
什么阻止cookie被劫持?
会话管理是服务器端的事情 - 您需要服务器检查(基于cookie)用户是否应该登录。
我认为你没有提高安全性,说实话,看看at this excellent article看看原因。
答案 2 :(得分:0)
如果某人掌握了会话ID,那么他们几乎劫持整个会话,请参阅Predictable Session IDs漏洞。