栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CSRF与CORS

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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或者一些网页的标签比如时,这些标签或者javascript尝试访问、加载另外一个非同源的网站A的资源,这时,网站A可以设定是否允许CORS访问,对于CORS访问限制,是浏览器设置的。浏览器在正式访问网站A前,会发一个OPTION请求,询问网站A是否允许跨域访问。

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号