$ {_ csrf}是做什么的?这是隐式的EL对象吗?

时间:2019-03-14 01:36:27

标签: java jsp

我正在查看一些源代码,并试图找出_csrf的来源。据我所猜测,它看起来像一个隐式的EL对象。可能与身份验证和Spring安全性有关。

以下是包含_csrf的代码。

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />

$ {_ csrf}是做什么的?这是隐式的EL对象吗?

3 个答案:

答案 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);