Jsf 2 JSF2.1和Seam:s:token仍然需要

Jsf 2 JSF2.1和Seam:s:token仍然需要,jsf-2,seam,Jsf 2,Seam,我正在将一个webapp从jsf1.2升级到jsf2.1(使用apachemyfaces实现)。 该应用程序还使用Seam,为了防止XSRF攻击,我使用了标记 现在我想知道JSF2.1是否仍然需要 有人能给我提供一些这方面的信息吗 干杯 FrankJSF1.x对CSRF敏感,因为隐藏输入字段javax.faces.ViewState的值很容易预测。它由一些固定的前缀值和递增的数字后缀组成。因此,当JSF1.xWebApp有一个XSS漏洞(在传统JSP中很容易被意外忽略)时,可以根据当前值预测下一

我正在将一个webapp从jsf1.2升级到jsf2.1(使用apachemyfaces实现)。 该应用程序还使用Seam,为了防止XSRF攻击,我使用了
标记

现在我想知道JSF2.1是否仍然需要

有人能给我提供一些这方面的信息吗

干杯
Frank

JSF1.x对CSRF敏感,因为隐藏输入字段
javax.faces.ViewState
的值很容易预测。它由一些固定的前缀值和递增的数字后缀组成。因此,当JSF1.xWebApp有一个XSS漏洞(在传统JSP中很容易被意外忽略)时,可以根据当前值预测下一个
javax.faces.ViewState
值,从而轻松准备CSRF攻击(并且依赖JSF 1.0/1.1的特性,盲目创建新视图,而不是抛出
ViewExpiredException

自从JSF 2.x以来,XSS和CSRF攻击都很难完成。请注意,如果没有XSS漏洞,准备成功的CSRF攻击几乎是不可能的。JSP的后续Facelets具有隐式XSS攻击预防。在JSF 2.x中有XSS漏洞的唯一方法是在用户控制的输入上显式使用
。即使如此如果有,隐藏的输入字段
javax.faces.ViewState
现在是一个很长的自动生成的值。无法预测下一个值

因此,
在JSF2.x中不再是一个真正的值

另见: