- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我们从 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/
我是 Angular 5 和 Spring MVC 的新手,我正在尝试为我的应用程序创建登录功能。 我们没有使用 Spring Security,因为我们只使用 Spring MVC 模块提供的基本
我正在尝试从我的 servlet 重定向到外部域 URL。但重定向会在 url 末尾添加 ;jsessionid=ghdssdf... 。我不知道如何防止将 jsession id 附加到我的 url
使用浏览器对我的服务进行身份验证后,我发现一个包含以下键/值对的 cookie: JSESSIONID=40d4b01c47ddb858718291d319a1a817d3037fdc6f2c341c
所以,我正在构建一个应用程序,我希望用户能够向另一个用户发送链接并处理相同的数据。几乎不需要将数据保留超过 15 分钟,并且我希望应用程序不必依赖数据库。 我当前有一些变量存储在 HttpSessio
我试图了解 JSessionId 的唯一性和范围,因为它涉及多个不相关的域。 我已阅读 Under what conditions is a JSESSIONID created? ,还有一些问题 -
我听说 ebay 使用 Java,但我登录时没有找到 jsessionid cookie。 是否存在跟踪用户 session 的替代技术?如何避免使用 jsessionid? 最佳答案 有可能、许多不
我很好奇 jsessionid 使用哪种编码。 jsessionid 值始终只包含字母数字字符,不包含其他字符,这使得 URL 中的这种编码对于用户来说更安全。 最佳答案 session ID 的格式
要求是登录前后JSESSIONID必须不同。 流程是login.jsp -> loginwebaction -> loginsuccess.jsp -> filter -> otheraction 我
我需要禁用或删除 URL 中的 Jsessionid 如何做到这一点,它是否会在 ajax 请求期间引起任何副作用。我使用的是 struts 1.2 版本。 最佳答案 Servlet 3.0 允许您指
我正在使用带有 jsessionid 的 URL,例如。 http://localhost:8080/myservlet;jsessionid=123 然而,每当我在 HttpServletReque
这个问题在这里已经有了答案: Where is JSESSIONID stored? (JavaEE) (2 个答案) 关闭 8 年前。 我正在研究特定 Web 应用程序的工作原理,并且我想确切地确
我们有一个包含多个负载平衡和 tomcat 服务器的云环境,服务于单个 Web 应用程序(用 angularjs、spring-mvc 和 java 编写的单页面应用程序)。 由于网络配置中的一些未知
JSESSIONID 的创建时间/条件是什么? 它是按域划分的吗?例如,如果我有一个 Tomcat 应用服务器,并且我部署了多个 Web 应用程序,是否会为每个上下文(Web 应用程序)创建一个不同的
为了说明一些情况,我正在开发一个 API 来跟踪网站上的用户操作(匿名用户也是如此)。到目前为止,我们使用 jsessionId 来识别每个用户及其操作。 该 API 现在可以在 Tomcat 和 J
在用户进行身份验证时重置 session cookie 被认为是一种良好的安全做法。 如何用 Java 做到这一点? 到目前为止我的尝试是成功的,但我想知道是否有更好的方法: public stati
我有这样的疑问,JSESSIONID 的超时控制参数是什么?。具体考虑这个用例:我有一个移动客户端,它正在维护发送带有 JSESSIONID header 的 cookie 的 session ,但是
我知道这几乎是同一个问题:ask by Joe 我有一个网络应用程序。当我关闭窗口(单击浏览器上的 X)时,它将调用注销功能。 问题是当我打开 Web 应用程序并在不同窗口(新窗口或另一个选项卡)上打
创建JSESSIONID的时间/条件是什么? 是每个域吗?例如,如果我有一个 Tomcat 应用程序服务器,并且我部署了多个 Web 应用程序,是否会为每个上下文(Web 应用程序)创建一个不同的 J
我在使用 CURL 获取网页时遇到了一些问题。我认为原因是我的 CURL 请求不包含 JSESSIONID 值。 这是我的 cookie 文件最后的样子: direct.orange.co.il FA
我成功地为我的登录端点发送了一个 POST 请求,并创建了一个 JSESSIONID。我知道 JSESSIONID 由我在线程顶部的 HTTP Cookie 管理器保存,因为我看到它被用于线程中的几个
我是一名优秀的程序员,十分优秀!