我正在研究我经常听到的东西,当在 JSF 2.0 中做一个 web 应用程序时,你已经受到保护,免受交叉站点 - 脚本和 - 请求伪造。以下摘自SO post证实这一点:
In JSF 2.0 this has been improved by using a long and strong autogenerated value instead of a rather predictable sequence value and thus making it a robust CSRF prevention.
有人可以提供更多详细信息吗?这个自动生成的值如何防止 CSRF?谢谢!
最佳答案
How does this autogenerated value prevent CSRF ?
因为猜不到。所以攻击者无法以攻击网站的形式硬编码到隐藏字段中(除非目标站点存在XSS漏洞,直接通过XSS手段获取值即可)。如果该值对 JSF 无效,则不会处理从攻击网站提交的表单,而是生成一个 ViewExpiredException
。请注意,攻击者仍然需要获取 session ID,以便通过 jsessionid
URL 属性传回,因此原本“弱”的 CSRF 保护仍然需要一些 XSS 漏洞来获取 session 身份证。
毕竟,我的印象是你根本不了解CSRF是什么;如果您了解 CSRF 是什么,答案就很容易解释了。在这种情况下,请检查以下问题:Am I under risk of CSRF attacks in a POST form that doesn't require the user to be logged in?
关于security - JSF 2.0 如何防止 CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429015/