2

我有一个用 java 编写的 web 应用程序。我们在身份验证过程中不使用会话。运行了应用程序扫描,发现我们有可能受到会话固定攻击。我想知道当我们不使用会话时,您如何修复或防止会话固定?这就是 FORTIFY 扫描报告的内容

The following changes were applied to the original request:
• Added parameter 'Cookie_abcxyz.com-443' with the following value 'R3777273810'
• Removed cookie 'Cookie_abcxyz.com-443'

Request/Response:
GET / HTTP/1.1
Content-Length: 43
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: myportal.abcxyz.com
Cookie_abcxyz.com-443=R3777273810
HTTP/1.1 200 OK
Set-Cookie: Cookie_abcxyz.com-443=R3777273810; path=/
Content-Length: 11211
Date: Mon, 13 Feb 2012 17:08:14 GMT
Server: abcxyz
Cache-Control: no-cache
Content-type: text/html
4

1 回答 1

11

我们在身份验证过程中不使用会话....我想知道我们什么时候不使用会话

这是无关紧要的。我假设您对服务器使用会话管理。此错误报告表明您没有验证会话标识符的查询字符串。
在此处查看有关如何受到攻击的一些示例:会话固定

更新:
我怀疑你没有使用标准容器。我不能告诉你你实际上应该做什么,因为你没有放任何代码,但是从你的描述和你得到这样一个发现的报告的事实来看问题是您允许 URL 重写并且攻击者可以使用它通过传入已知的会话 ID 来“窃取”会话。
从广义上讲,您应该做的是在用户登录后使当前会话无效并当场创建一个新会话。因此,已经“被盗”的 id 无法重复使用。

而且由于您在帖子中提供的信息很少,您应该花一些时间研究以下内容,以确定有问题的代码部分:
OWASP 1
OWASP 2
OWASP 3
Java Secure session SO
ASP as well
有趣的论文关于会话固定
来自 OWASP 的一些 HTTP 实用程序,您也许可以
在 Java
安全会话管理中使用会话固定

于 2012-03-05T16:13:06.503 回答