gpt4 book ai didi

jsf-2 - JSF 2.1 和接缝 : s:token still required

转载 作者:行者123 更新时间:2023-12-02 08:37:04 25 4
gpt4 key购买 nike

我正在将 Web 应用程序从 JSF 1.2 升级到 JSF 2.1(使用 Apache MyFaces 实现)。该应用程序还使用了 Seam,为了防止 XSRF 攻击,我使用了 <s:token>标签。

现在我想知道 <s:token>对于 JSF 2.1 仍然是必需的。

谁能给我提供一些这方面的信息?

干杯弗兰克

最佳答案

JSF 1.x 是 CSRF 敏感的,因为隐藏输入字段的值 javax.faces.ViewState很容易预测。它由一些带有递增数字后缀的固定前缀值组成。因此,当 JSF 1.x webapp 有一个 XSS 漏洞(在遗留 JSP 中很容易被意外忽略)时,可以通过预测下一个 javax.faces.ViewState 轻松准备 CSRF 攻击。基于当前值的值(并依赖于 JSF 1.0/1.1 盲目创建新 View 而不是抛出 ViewExpiredException 的特性)。

从 JSF 2.x 开始,XSS 和 CSRF 攻击都变得更加难以实现。请注意,如果没有 XSS 漏洞,几乎不可能准备成功的 CSRF 攻击。 JSP 的继任者 Facelets 具有隐式的 XSS 攻击预防。在 JSF 2.x 中出现 XSS 漏洞的唯一方法是显式使用 <h:outputText escape="false">在用户控制的输入上。即使有,隐藏的输入字段 javax.faces.ViewState现在是一个很长的自动生成的值。无法为此预测下一个值。

因此,<s:token>在 JSF 2.x 中不再真正有值(value)。

另见:

关于jsf-2 - JSF 2.1 和接缝 : s:token still required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com