【问题标题】:Preventing session fixation in java防止java中的会话固定
【发布时间】:2012-03-05 16:07:00
【问题描述】:

我有一个用 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

【问题讨论】:

    标签: java session-fixation


    【解决方案1】:

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

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

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

    由于您在帖子中提供的信息太少,您应该花一些时间研究以下内容,以确定有问题的代码部分:
    OWASP 1
    OWASP 2
    OWASP 3
    Java Secure session SO
    ASP as well
    Interesting paper on session fixation
    Some HTTP utilities from OWASP that you could perhaps use
    Session fixation in Java
    Secure Session Management

    【讨论】:

    • 我怎么知道我使用了会话管理?如何验证会话标识符的查询字符串?
    • @yogsma:我不知道你使用它。我假设你使用它,因为如果不保持状态就不可能构建任何有用的 Web 应用程序。这取决于你如何进行会话管理。做你使用 URL 重写或 cookie?
    • @yogsma:.而且你没有提到你使用哪个容器。是Tomcat吗?你应该阅读我给你的链接
    • @yogsma:自定义网络服务器的风险非常高。你应该考虑一个已知的容器并使用它的会话管理。
    • @yogsma:我更新了一些更有趣的链接。你应该研究它们。你也可以放一些代码来看看你在做什么
    猜你喜欢
    • 2012-07-05
    • 2012-02-20
    • 2014-02-06
    • 1970-01-01
    • 2017-12-18
    • 2012-09-06
    • 2011-02-22
    • 2011-01-25
    • 2012-08-27
    相关资源
    最近更新 更多