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