没有 jsp (spring mvc) 的 csrf 令牌

csrf token without jsp (spring mvc)

我在 Spring 安全配置中启用了 csrf 令牌。但是移动设备如何接收 csrf 令牌?当我有 jsp 时,它看起来像:

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

但是现在我没有jsp...所以有什么办法可以手动发送csrf吗?

一种流行的做法是编写过滤器以将令牌附加为 cookie。然后您的客户端首先发送一个 GET 请求来获取该 cookie。对于后续请求,该 cookie 然后作为 header.

发回

具体实现可以看官方Spring Angular guide, and refer to Spring Lemon的源码

如果启用了 CSRF,您必须在要登录或注销的页面中包含 _csrf.token。否则,登录和注销功能都将失败。

Refer this 寻求更多帮助。

编辑: 您可以从请求中获取 csrf 令牌并根据需要发送。我已经分享了两个 csrf 令牌参考,请仔细阅读。它会帮助你。

First Ref
Second Ref

您可以实施无状态 CSRF 保护。一种解决方案 nicely explained by Robbert van Waveren 让客户端在 Cookie 和自定义 HTTP header:

中生成并发送相同的唯一秘密值

Considering a website is only allowed to read/write a Cookie for its own domain, only the real site can send the same value in both headers. Using this approach all your server has to do is check if both values are equal, on a stateless per request basis!