security - JSF 2.0 如何防止 CSRF

标签 security jsf csrf-protection

我正在研究我经常听到的东西,当在 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/

相关文章:

c# - 如何在 .NET 中验证 DLL 的数字签名

java - 防止向用户显示任何异常?

php - 将 session token 或随机数用于跨站点请求伪造保护 (CSRF)?

ruby-on-rails - 在 rspec 中 stub protected_from_forgery 以获取 API 规范

jsf - 验证器 =""<h :inputtext> in jsf causing exception 的属性

node.js - 快速 CSRF token 验证

java - 在 Java 应用程序中使用安全数据库

windows - 跨用户注册表值

security - 了解CSRF

jsf - Facelets错误页面在使用FullAjaxExceptionHandler进行ajax请求期间有效,但在同步请求期间不评估EL