SpringSecurity解决POST方式下CSRF问题

作者:HuCheng1997 时间:2023-07-18 18:59:51 

问题现象:HTTP Status 403-Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'

原因:Spring Security为防止CSRF(Cross-site requetst forgery跨站请求伪造)的发生,限制了除了get以外的大多数方法。

解决方案

①(后端常用):

屏蔽CSRF控制,即Spring Security不再限制CSRF,进行配置:

@Override
protected void configure(HttpSecurity http) throws Exception {
     //屏蔽CSRF控制
     http.csrf().disable()
    ... 
}

解决方案②:

定义headers,post方式提交的时候带上headers的信息:

var headers = {};
headers['X-CSRF-TOKEN'] = "[[${_csrf.token}]]";
$.ajax({
    url: url,
    type: "POST",
    headers: headers,
    dataType: "json",
    success: function(result) {
    }
});

解决方案③:

直接作为参数提交:

$.ajax({
   url: url,
   data: {
       "[[${_csrf.parameterName}]]": "[[${_csrf.token}]]"
       },
   type: "POST",
   dataType: "json",
   success: function(result) {
   }
});

解决方案④:

form表单提交的时候,作为隐藏参数提交

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

来源:https://blog.csdn.net/qq_38697437/article/details/105479875

标签:SpringSecurity,POST,CSRF
0
投稿

猜你喜欢

  • Java递归算法遍历部门代码示例

    2021-08-03 20:59:20
  • Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    2023-05-14 01:25:33
  • SpringBoot中的Aop用法示例详解

    2023-03-31 14:12:00
  • java使用Hashtable过滤数组中重复值的方法

    2023-10-22 06:24:08
  • 项目为什么引入log4j而不是logback代码

    2023-02-02 07:51:07
  • Android入门之实现自定义Adapter

    2021-09-30 17:34:10
  • java Matcher匹配头尾截取替换字符串的案例

    2023-01-30 11:44:48
  • MyBatis-Plus拦截器实现数据权限控制的示例

    2022-12-10 05:10:17
  • java IO流 之 输出流 OutputString()的使用

    2023-08-11 23:16:30
  • Java设置PDF跨页表格重复显示表头行的步骤详解

    2023-09-21 23:50:33
  • spring基于注解配置实现事务控制操作

    2021-12-07 11:58:24
  • Java全面深入探究SpringBoot拦截器与文件上传

    2021-11-12 20:08:24
  • java 创建线程的方法总结

    2023-02-25 20:20:30
  • Jenkins+Maven+SVN自动化部署java项目

    2021-06-01 11:28:27
  • C#中Foreach循环遍历的本质与枚举器详解

    2022-08-04 05:31:12
  • 详解Java8中CompletableFuture类的使用

    2022-06-28 17:39:43
  • 利用Android从0到1实现一个流布局控件

    2023-01-29 06:38:15
  • redisson 实现分布式锁的源码解析

    2022-06-05 05:38:47
  • IDEA Ui设计器JFormDesigner 永久激活插件+注册机(亲测一直在用)

    2022-10-23 18:44:46
  • Maven构建时跳过部分测试的实例

    2022-08-30 03:42:50
  • asp之家 软件编程 m.aspxhome.com