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

标签 security jsessionid

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

但是我们发现,当启用cookie时,第一个请求URL总是有jsessionid,而后续请求URL没有jsessionid。

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

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

有一个解决方案可以从第一个请求中删除 jsessionid,但想检查一下它是否真的容易强制执行更改

谢谢 J

编辑:我的疑问得到了澄清。感谢您的回复。

最佳答案

您在此处所做的操作可以在一定程度上提高解决方案的整体安全性,但不一定能防止 session 劫持。

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

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

此外,如果您想减轻 session 劫持,还需要考虑许多其他方面。

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

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

此外,如果可能的话, session cookie 应该使用 httpOnly 和 secure 标志,以降低它们通过明文 channel 泄露的风险。

关于 OWASP Site 有一些很好的附加信息

顺便说一句,如果您对安全方面有更多疑问,有一个专门针对此问题的堆栈交换站点 Security.stackexchange.com

关于security - 仅在第一次请求时拥有 Jsessionid 的漏洞是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4722151/

相关文章:

security - 网址扫描工具

c# - ASP.NET 在 HTTP 和 HTTPS 上保护 Cookie

tomcat - 如何在反向代理后面正确设置 JSESSIONID cookie 路径

java - 如何在 Spring 中以编程方式生成 session ID

php - 修补基于时间的 sql 注入(inject)

html - 为什么 <style> block 被认为是不安全的标记?

Symfony 4.3 - 无法 Autowiring 引用类 "Symfony\Component\Security\Core\Security"的服务参数

redirect - 301 为 Facelets 中的 SEO 重定向 jsessionid 链接?

java - 为什么要记住我的 token ?

java - Spring Web Flow——流程被重置