JSF 2.0如何阻止CSRF

Lea*_*nne 10 security jsf csrf-protection

我正在研究我经常听到的东西,当你在JSF 2.0中进行webapp时,你已经受到了保护,不受跨文件的攻击 - 请求伪造.以下来自SO帖子的摘录证实了这一点:

在JSF 2.0中,通过使用长而强的自动生成值而不是相当可预测的序列值来改进这一点,从而使其成为强大的CSRF预防.

有人可以提供更多细节吗?这种自动生成的价值如何阻止CSRF?谢谢!

Bal*_*usC 11

这种自动生成的价值如何阻止CSRF?

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

毕竟,我的印象是你根本不了解CSRF是什么; 如果您了解CSRF是什么,答案就是自我解释.在这种情况下,请检查以下问题:我是否有POST表格中的CSRF攻击风险,不需要用户登录?


Arj*_*jms 6

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

在JSF 2.2中,将会有更明确的支持.我在这里简要解释一下:http://arjan-tijms.omnifaces.org/p/jsf-22.html