CSRF防护:
CSRF:跨站请求伪造,通过伪造用户请求访问受信任的站点从而进行非法请求访问,是一种攻击手段。 Spring Security为了防止CSRF攻击,默认开启了CSRF防护,这限制了除了GET请求以外的大多数方法。我们要想正常使用Spring Security需要突破CSRF防护。
解决方法一:关闭CSRF防护:
只需要在SpringSecurity的配置类中加入以下代码就行
http.csrf().disable();
解决方法二:突破CSRF防护:
CSRF为了保证不是其他第三方网站访问,要求访问时携带参数名为_csrf值为令牌,令牌在服务端产生,如果携带的令牌和服务端的令牌匹配成功,则正常访问。只需要在登录表单加入以下代码即可。
<!-- 在表单中添加令牌隐藏域 -->
<input type="hidden" th:value="${_csrf.token}" name="_csrf" th:if="${_csrf}"/>
大概添加的位置如图所示:
这是作者第4次写博客,技术与文采尚不熟练,如有缺点,请指出,感谢