• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
leo130-blogs
博客园    首页    新随笔    联系   管理    订阅  订阅

关于搭建网站时,出现的问题:同源策略和跨源分享

以下是关于同源策略和CORS(跨域资源共享)的详细介绍:

1、同源策略(Same-Origin Policy):
定义:同源策略是一种安全策略,由Netscape公司提出,是浏览器最核心也最基本的安全功能。它是现代Web浏览器的一个关键安全概念,用于防止不同源的网页读取或修改彼此的数据。
作用:它限制了从一个源(协议、域名和端口)加载的文档或脚本如何与来自另一个源的资源进行交互。这有助于防止恶意网站读取敏感数据,如用户会话信息或cookie。
实现:当一个浏览器的两个tab页中分别打开来自不同源的页面时,浏览器的脚本会检查其来源。只有与当前页面同源的脚本才会被执行。如果非同源,浏览器会在控制台中报告一个异常,提示拒绝访问。
限制:同源策略主要限制了以下三种行为:
无法读取对方的Cookie、LocalStorage和IndexDB。
无法获得对方的DOM。
不能向对方发送AJAX请求。
2、CORS(Cross-Origin Resource Sharing):
定义:CORS是一个W3C标准,全称是跨域资源共享,也有译为跨源资源共享。它定义了一种浏览器和服务器交互的方式来确定是否允许跨源请求。
作用:CORS允许浏览器向跨源服务器发出XMLHttpRequest(XHR)或Fetch API跨域HTTP请求,从而克服了同源策略的限制。这允许来自不同源的网页和服务进行交互,但前提是这些交互是安全的。
实现:CORS基于HTTP头部字段实现。服务器通过在响应中包含特定的CORS头部字段来告诉浏览器哪些源被允许访问其资源。例如,“Access-Control-Allow-Origin”头部字段指定了哪些外域可以访问本域资源。
预检请求:在发送跨域请求之前,浏览器可能会首先发送一个预检请求(preflight request)到服务器,以检查服务器是否允许该跨域请求。如果服务器允许,则浏览器会发送实际的请求。

总结来说,同源策略是浏览器的一种安全机制,用于限制不同源之间的交互。而CORS则是一种机制,允许浏览器和服务器之间进行交互以确定是否允许跨域请求。两者都是为了保护Web应用程序的安全性而设计的。

posted @ 2024-05-23 20:29  Sanchez023  阅读(51)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3