JSF 2.1和Seam:s:令牌仍然需要

Fra*_*ank 2 seam jsf-2

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

现在我想知道<s:token>JSF 2.1是否仍然需要它.

有人可以提供一些相关信息吗?

干杯弗兰克

Bal*_*usC 6

JSF 1.x对CSRF敏感,因为隐藏输入字段的值javax.faces.ViewState很容易预测.它由一些带有增量数字后缀的固定前缀值组成.因此,当JSF 1.x webapp具有XSS漏洞(在遗留JSP中相当容易忽略)时,可以通过javax.faces.ViewState基于当前值预测下一个值(并依赖于JSF 1.0/)来轻松准备CSRF攻击1.1盲目创建新视图而不是抛出的特征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中已经没有真正的价值了.

也可以看看: