仅在第一次请求时拥有Jsessionid的漏洞是什么?

时间:2011-01-18 08:57:21

标签: security jsessionid

最近我们从URL中删除了jsessionid,做了基于cookie的会话管理,以防止“会话劫持攻击”

但是我们发现当启用cookie并且后续请求URL没有jsessionid时,第一个请求URL始终具有jsessionid。

使用第一个网址的jsessionid我们可以直接点击工作流程中的其他页面

问题:是否有任何安全漏洞仅在第一次请求时暴露jsessionid?

有一个解决方案可以从第一个请求中删除jsessionid,但是想检查一下,如果它真的很容易要求更改

感谢 J

编辑:我澄清了我的疑问。谢谢你的回复。

3 个答案:

答案 0 :(得分:7)

您在此处所做的工作可以在某种程度上提高解决方案的整体安全性,但不一定会阻止会话劫持。

将会话ID放在URL中的安全问题是URL在各个地方公开(例如,复制和粘贴的URL可能会暴露实时会话,URL可以存储在代理服务器日志中,Web服务器日志和浏览器历史记录中),这可能允许攻击者获取有效的会话ID并访问您的用户数据。

理想情况下,您应该从所有位置的URL中删除JSESSIONID,并且只使用cookie存储。

此外,如果您想要减少会话劫持,还需要考虑其他一些方面。

您需要在传递会话ID的所有网页上使用SSL(这是为了降低会话ID在传输过程中被截获的风险(例如,Firesheep攻击)。

如果在对用户进行身份验证之前设置了会话ID,则应确保在用户登录时发出新的会话ID。

如果可能的话,会话cookie应该使用httpOnly和安全标志,以降低它们通过明文渠道泄露的风险。

OWASP Site

上有一些很好的附加信息

顺便说一句,如果你对安全方面的问题有更多疑问,那么Security.stackexchange.com

就有一个专门针对该问题的堆栈交换网站

答案 1 :(得分:2)

  

进行基于cookie的会话管理以防止“会话劫持攻击”

什么阻止cookie被劫持?

会话管理是服务器端的事情 - 您需要服务器检查(基于cookie)用户是否应该登录。

我认为你没有提高安全性,说实话,看看at this excellent article看看原因。

答案 2 :(得分:0)

如果某人掌握了会话ID,那么他们几乎劫持整个会话,请参阅Predictable Session IDs漏洞。