【问题标题】:Is session security enough for java?java的会话安全性是否足够?
【发布时间】:2015-06-06 09:12:17
【问题描述】:

所以我一直在寻找有关会话安全的一些信息,只能找到与 PHP 会话相关的信息。

现在我的网络应用程序根据数据库对用户进行身份验证,如果成功,会将他们的用户对象(休眠实体)作为属性放入 HttpSession。

我的网络应用程序,然后验证该属性已设置,并将使用该用户对象进行所有未来的数据库查询并确认用户已获得授权。

我的网络应用将为小型企业管理资金和付款,而安全性是我的主要关注点。如果攻击者能够冒充用户,他们将能够退还付款并取消销售。付款由条带处理,因此卡详细信息是安全的,但用户将拥有 API 访问权限来发起退款。

这个用户对象设置为 HttpSession 属性是否足够安全,还是应该添加更严格的安全措施?如果是这样,您能否建议其他方法来保护用户帐户。

所有会话均通过 SSL 进行。

谢谢!

【问题讨论】:

标签: java jsp security session


【解决方案1】:

嗯,基本上,在处理 Java/PHP 或任何其他语言的金融应用程序时,您永远不应该只依赖会话。通过短信至少使用“一次性”密码来批准“退款和取消销售”等关键操作。

回到 java 会话,拒绝将会话 id 存储为请求参数是一个好的开始 - 防止会话固定的第一个也是最简单的保护(将其添加到 web.xml):

<session-config>
        <cookie-config>
            <http-only>true</http-only>
        </cookie-config>
    </session-config>

作为复杂的解决方案尝试 HDIV http://www.hdiv.org/

【讨论】:

  • 谢谢,因为 HDIV,我选择了这个作为答案。不知道这个安全框架存在,现在实施它感觉好多了。我赞成其余的答案,因为它们都很好。谢谢大家。
  • 如果会粘在某个地方,请随时与我联系 - 我有很多练习)
【解决方案2】:

不,您至少需要担心https://www.owasp.org/index.php/Top_10_2013-Top_10

特别是对于您的应用类型,您应该首先关注 SQL 注入、会话固定、CSRF、XSS 和不安全的直接对象引用。

我会从使用像 ModSecurity for Apache httpd 这样的 Web 应用程序防火墙开始

【讨论】:

    【解决方案3】:

    会话状态保存在服务器端,就像在 PHP 中一样。会话 ID 由浏览器作为 cookie 发送,就像在 PHP 中一样。可以通过窃取会话 cookie 来冒充用户,但由于流量是使用 HTTPS 加密的,唯一的方法是从浏览器内存或服务器内存中窃取它。

    【讨论】:

    • 嗯,有 CSRF ......所以你不一定需要拥有如此疯狂的访问权限来利用未受保护的会话 cookie,对吧?
    • 确实如此。通过模拟,我的意思是使用具有其他用户凭据的真实应用程序。 CSRF 确实可以通过让真实用户认为他将数据发布到不同的应用程序来欺骗真实用户将数据发布到真实应用程序。此问题的解决方案是使用 JavaScript 来发布表单,并将会话 cookie 作为 HTTP 标头发送,同时将其作为 cookie 发送。然后,服务器必须检查标头和 cookie 是否匹配。
    • 或会话固定。或者 XSS
    • @NeilMcGuigan 我将这个问题理解为“Java 会话如何工作”。不像“我需要担心的所有安全方面是什么”。 XSS 与会话管理没有太大关系。
    猜你喜欢
    • 2013-02-03
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2021-04-14
    • 2013-03-02
    • 2012-05-06
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多