当前位置: 首页 > news >正文

CORS(跨域资源共享)和SOP(同源策略)

        CORS(跨域资源共享)和SOP(同源策略)不是同一个东西,但它们紧密相关,并且常常一起讨论,因为 CORS 是为了解决同源策略带来的跨域问题而引入的。

同源策略(Same-Origin Policy)

同源策略是一种浏览器安全机制,用于限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。同源策略的核心是确保不同源之间的资源不会互相干扰,从而保护用户的安全。

  • 同源定义

    • 协议(protocol)、主机(host)和端口(port)三者必须完全相同,才被认为是同源。
    • 例如,http://example.com/page1 和 http://example.com/page2 是同源的,但 http://example.com 和 https://example.com 不是同源的(协议不同),http://example.com 和 http://sub.example.com 也不是同源的(主机不同)。
  • 同源策略的限制

    • JavaScript 不能直接访问不同源的页面内容。
    • AJAX 请求不能发送到不同源的服务器。
    • Cookie、LocalStorage 等存储机制也有同源限制。

CORS(跨域资源共享)

CORS 是一种机制,它允许服务器在响应中添加特定的 HTTP 头,从而允许浏览器放宽同源策略的限制,使得不同源的网页可以请求和访问资源。

  • CORS 的工作原理

    • 预检请求(Preflight Request):对于复杂请求(如带有自定义头的请求、PUT 或 DELETE 请求),浏览器会先发送一个 OPTIONS 请求到服务器,询问服务器是否允许实际的请求。
    • 简单请求(Simple Request):对于简单请求(如 GET、POST 请求,且没有自定义头),浏览器会直接发送请求,但在请求头中会包含 Origin 字段,表明请求来自哪个源。
    • 服务器响应:服务器在响应中添加 Access-Control-Allow-Origin 头,表示允许哪些源访问资源。如果源不在允许列表中,浏览器会阻止请求。
  • CORS 的优点

    • 允许跨域请求,提高前后端分离开发中的灵活性。
    • 增强了安全性,因为服务器可以控制哪些源可以访问资源。

总结

  • 同源策略:是一种浏览器安全机制,限制不同源之间的资源交互。
  • CORS:是一种解决同源策略限制的机制,允许服务器通过特定的 HTTP 头放宽同源策略,使得跨域请求成为可能。

虽然它们不是同一个东西,但 CORS 是为了解决同源策略带来的跨域问题而设计的。理解它们之间的关系和区别,有助于更好地进行 Web 开发和安全配置。


http://www.mrgr.cn/news/67931.html

相关文章:

  • c语言所有关键字简单整理
  • 软信天成:您企业的数据资产真的安全吗?
  • 【已解决,含泪总结】Ubuntu18.04下非root用户Anaconda3卸载重装,conda install终于不再报错
  • python实现RSA算法
  • 1.3 自然语言处理的应用
  • 【前端】JavaScript 方法速查大全-对象(二)
  • C++从零到满绩——命名空间、输入输出and缺省参数
  • 架构师:如何提高web网站的请求并发响应量?
  • 高速电机精确控制
  • kafka+zookeeper的搭建
  • 【笔记】变压器-热损耗-频响曲线推导 - 04 额定功率处损耗特性
  • 【jmeter】jmeter的线程组功能的详细介绍
  • lua入门教程:ipairs
  • JMM内存模型详解
  • 【wxWidgets GUI设计教程 - 高级布局与窗口管理】
  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • ubuntu18.04 安装与卸载NCCL conda环境安装PaddlePaddle
  • 21-Terms 不正确的案例
  • 创新实践:基于边缘智能+扣子的智慧婴儿监控解决方案
  • 面向对象设计OOD
  • Android 解决Java和Kotlin JDK编译版本不一致异常
  • Jest项目实战(6):搭建文档网站
  • Java 抽象类 详解
  • Javascript常见数据结构及其应用场景
  • 【Chapter 2_ Sentosa_DSML Community Edition Product Features】
  • FPGA实战篇:Moore/Mealy状态机