【问题标题】:How JSF 2.0 prevents CSRFJSF 2.0 如何防止 CSRF
【发布时间】:2013-10-26 01:53:04
【问题描述】:

我正在研究我经常听到的东西,当在 JSF 2.0 中做一个 webapp 时,你已经受到保护,免受跨站 - 脚本和 - 请求伪造。以下来自SO post 的摘录证实了这一点:

在 JSF 2.0 中,这已通过使用长而强大的自动生成值而不是相当可预测的序列值得到改进,从而使其成为一种强大的 CSRF 预防措施。

有人可以提供更多详细信息吗?这个自动生成的值如何防止 CSRF?谢谢!

【问题讨论】:

    标签: security jsf csrf-protection


    【解决方案1】:

    这个自动生成的值如何防止 CSRF ?

    因为它无法猜测。因此攻击者无法以攻击网站的形式将其硬编码在隐藏字段中(除非目标网站存在XSS漏洞,因此可以通过XSS手段直接获取该值)。如果该值对 JSF 无效,那么从攻击网站提交的表单将不会被处理,而是会生成一个ViewExpiredException。请注意,攻击者仍然需要获取会话 ID,以便可以通过jsessionid URL 属性将其传回,因此最初“弱”的 CSRF 保护仍然需要一些 XSS 漏洞来获取会话 ID。

    毕竟,我的印象是你根本不明白 CSRF 是什么;如果您了解 CSRF 是什么,答案是不言自明的。在这种情况下,请检查以下问题:Am I under risk of CSRF attacks in a POST form that doesn't require the user to be logged in?

    【讨论】:

      【解决方案2】:

      要记住的一点是,JSF 2.0 中的 CSRF 保护是隐式的,仅对 POST 请求有效。

      在 JSF 2.2 中将对此提供更明确的支持。我在这里简单解释一下:http://arjan-tijms.omnifaces.org/p/jsf-22.html

      【讨论】:

        猜你喜欢
        • 2012-04-13
        • 1970-01-01
        • 2021-06-26
        • 2015-09-28
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        相关资源
        最近更新 更多