Spring CSRF防护

本文介绍了Spring Security中的CSRF防护机制,解释了CSRF攻击的原理,并展示了如何在Spring Boot项目中启用和禁用CSRF保护。默认情况下,Spring Security会阻止未经授权的POST、PUT、DELETE请求。为确保安全,可以通过在表单或HTTP头中添加CSRF令牌。同时,文章还提供了禁用CSRF保护的方法以及添加相关依赖的步骤。
摘要由CSDN通过智能技术生成

 Spring Security 中 CSRF

      从刚开始学习 Spring Security 时,在配置类中一直存在这样一行代码:http.csrf().disable();如果没有这行代码导致用户无法被认证。这行代码的含义是:关闭 csrf 防护。

一、

 CSRF是指跨站请求伪造(Cross-site request forgery)
是web常见的攻击之一,攻击方通过伪造用户请求访问受信任站点。
通常的CSRF攻击方式如下
你登录了网站A,攻击者向你的网站^账户发送留言、伪造嵌入页面,带有危险操作链接。
当你在登录状态下点击了攻击者的连接,因此该链接对你网站^的账户进行了操作。
我这边是spring boot项目,在启用了@EnableWebSecurity注解后,csrf保护就自动生效了。
所以在默认配置下,即便已经登录了,页面中发起PATCH,POST,PUT和DELETE请求依然会被拒绝,并返回403,需要在请求接口的时候加入csrfToken才行。
如果你使用了freemarker之类的模板引擎或者jsp,针对表单提交,可以在表单中增加如下隐藏域:

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

如果您使用的是JSON,则无法在HTTP参数中提交CSRF令牌。相反,您可以在HTTP头中提交令牌。一个典型的模式是将CSRF令牌包含在元标记中。下面显示了一个JSP示例:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值