我正在查看一些源代码,并试图找出_csrf
的来源。据我所猜测,它看起来像一个隐式的EL对象。可能与身份验证和Spring安全性有关。
以下是包含_csrf
的代码。
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
$ {_ csrf}是做什么的?这是隐式的EL对象吗?
答案 0 :(得分:3)
As described in the documentation,_csrf
变量由Spring Security提供。在JSP中,更好的方法是使用csrfInput
标签。 Thymeleaf会自动将其包括在内,完全不需要。
答案 1 :(得分:3)
跨站点请求伪造,也称为一键攻击或会话骑行,缩写为CSRF(有时称为海上冲浪)或XSRF,是对网站的一种恶意利用,未经授权的命令会从用户那里传输该Web应用程序信任的内容。
此输入通过向您的所有页面请求添加特殊的csrf令牌来保护表单免受csrf攻击
检查一下: https://en.wikipedia.org/wiki/Cross-site_request_forgery https://www.baeldung.com/spring-security-csrf
答案 2 :(得分:1)
好吧,这是属于已实现CsrfToken接口的类的对象。
该对象已被Spring安全性设置为request parameter
。
,如果您打算在Controller之类的其他地方阅读它,则可以使用此代码从传入的HttpServletRequest
对象中加载令牌。
CsrfToken theToken = new HttpSessionCsrfTokenRepository().loadToken(req);