Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security JSF2.0如何防止CSRF_Security_Jsf_Csrf Protection - Fatal编程技术网

Security JSF2.0如何防止CSRF

Security JSF2.0如何防止CSRF,security,jsf,csrf-protection,Security,Jsf,Csrf Protection,我正在研究我经常听到的东西,当在JSF2.0中开发webapp时,你已经可以避免跨站点脚本和请求伪造。以下摘自a的内容证实了这一点: 在JSF2.0中,通过使用一个长而强的自动生成值而不是一个相当可预测的序列值,这一点得到了改进,从而使其成为一个健壮的CSRF预防 有人能提供更多的细节吗?这个自动生成的值如何防止CSRF?谢谢 这个自动生成的值如何防止CSRF 因为这是无法猜测的。因此,攻击者无法以攻击网站的形式将其硬编码到隐藏字段中(除非目标网站有XSS漏洞,因此可以通过XSS方式直接获得该值

我正在研究我经常听到的东西,当在JSF2.0中开发webapp时,你已经可以避免跨站点脚本和请求伪造。以下摘自a的内容证实了这一点:

在JSF2.0中,通过使用一个长而强的自动生成值而不是一个相当可预测的序列值,这一点得到了改进,从而使其成为一个健壮的CSRF预防

有人能提供更多的细节吗?这个自动生成的值如何防止CSRF?谢谢

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

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


毕竟,我的印象是,你根本不了解CSRF是什么;如果你理解CSRF是什么,答案是相当自我解释的。在这种情况下,请检查以下问题:

需要记住的一点是,JSF2.0中的CSRF保护是隐式的,仅对POST请求有效

在JSF2.2中,将有更明确的支持。我在这里简要地解释了这一点: