CSRF与CORS

CSRF与CORS没有直接的联系。

在CSRF攻击时,不是通过跨域访问来攻击的,比如从恶意B网站下载的javascript执行时,访问正常网站A,不是这样的。一般是从恶意网站B下载的网页里边有一个超级链接,链接到网站A,这是由于用户登陆过网站A,便会携带身份信息(主要是cookie),向A网站发起操作,比如银行转账等。

Spring Security通过设定一个csrf_token的方式,并且这个token下次访问时,通过header、parameter、cookie的方式携带上来,这样Spring Security的CSRF Filter就会检查cookie里边的CSRF token值和header或者parameter里的CSRF token值是否相同来判断是否是合法请求。

由于CSRF攻击时,只能将网站A的cookie携带过来,但是header是无法携带的,所以请求到了Spring Security的CSRF Filter就会被拒绝。

(以上是对Spring Security CSRF这块儿的粗浅理解,还没有详细看源码,理解肯定会有偏差)

对于前后端分离项目,一般认为是天然免受CSRF攻击的,因为前后端分离项目,后端一般使用token来进行鉴权,而不是使用cookie,所以恶意网站一般不容易对这种后台服务做CSRF攻击。

而CORS一般是指客户端浏览器在收到网站B的javascript或者一些网页的标签比如<image>时,这些标签或者javascript尝试访问、加载另外一个非同源的网站A的资源,这时,网站A可以设定是否允许CORS访问,对于CORS访问限制,是浏览器设置的。浏览器在正式访问网站A前,会发一个OPTION请求,询问网站A是否允许跨域访问。

所以CSRF与CORS的区别还是很大的。CSRF对于浏览器来说就是一个正常的访问,没有OPTION操作,不涉及同源、跨域的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值