漏洞原理 | CORS跨域学习

CORS (跨域资源共享) 详细原理解析

1. 什么是CORS

CORS(Cross-Origin Resource Sharing,跨域资源共享)是一种网络浏览器技术规范,用于绕过浏览器的同源策略(SOP),允许网页脚本能够向不同源的服务器发起请求,从而实现跨域访问。CORS 可以使网页从一个域名请求另一个域名的资源,而不受同源策略的限制。

2. 同源策略简介

同源策略(Same-Origin Policy)是Web安全的核心基石,规定了一个源的脚本在默认情况下只能读取相同源的网络资源。源的定义包括三个部分:协议、域名和端口。只有当这三者完全相同,两个URL才属于同一个源。

3. 同源检测示例

当一个网页尝试请求另一个源(例如,从https://example.com请求https://api.other.com)的资源时,浏览器会基于URL的协议、域名和端口来判断是否属于同一源。如果不是,浏览器将默认阻止这种跨源HTTP请求。
在这里插入图片描述

4. 漏洞产生原因

CORS漏洞通常产生于服务器端配置不当。如果服务器在处理CORS请求时,过于宽松地接受了任意的Origin值或未正确验证Origin值的有效性,就可能允许未经授权的站点访问敏感数据。

5. 两种跨域方式
  • JSONP(JSON with Padding)
    利用<script>标签的特性来进行跨域请求,只支持GET请求。通过动态创建<script>标签的方式来获取其他域上的JSON数据,然后在本地执行回调函数。

  • CORS跨域请求
    相比JSONP更为先进和安全,支持多种HTTP请求方法(如GET、POST、DELETE等)。通过在HTTP请求中添加特定的CORS相关头部来告知浏览器这是一个安全的跨源请求。

6. CORS的请求方式
  • 简单请求
    直接发出CORS请求,自动添加Origin头部。服务器响应中包含Access-Control-Allow-Origin等CORS响应头,浏览器根据这些头部决定是否允许跨域。

  • 非简单请求(预检请求)
    在正式通信之前,浏览器先发送一个OPTIONS请求,称为“预检”请求,来询问服务器是否允许该跨域操作。此请求包括Access-Control-Request-MethodAccess-Control-Request-Headers等头部。服务器必须确认这些请求头部和方法都是允许的,才能继续处理实际的请求。

7、 返回包头部的ACAO根据请求报文Origin生成

在这里插入图片描述

8、CORS漏洞与CSRF漏洞

相同点

   (1)都需要借助第三方网站 

    (2)都需要借助ajax的异步过程

    (3)一般都需要用户登陆

不同点

    (1)第三方网站可以利用CORS漏洞读取到受害者的敏感信息

    (2)第三方网站可以利用CSRF漏洞替受害者完成诸如转账等敏感操作
免费领取安全学习资料包!

在这里插入图片描述
渗透工具
在这里插入图片描述
技术文档、书籍
在这里插入图片描述
面试题
在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值