同源策略是一种重要的安全机制,它限制一个源加载的文档或脚本如何与另一个源的资源进行交互。下文小文智能就为您详细解答什么是同源策略。
一、目的
它有助于隔离潜在的恶意文档,减少可能的攻击媒介。例如,它可以防止互联网上的恶意网站在浏览器中运行 JS,以从第三方 Web 邮件服务(用户已登录)或公司内部网(通过以下方式防止攻击者直接访问)读取数据:没有公共 IP 地址)并将该数据转发给攻击者。
二、定义
如果两个 URL 的协议、端口(如果指定)和主机相同,则两个 URL 具有相同的来源。您可能会看到它被引用为“方案/主机/端口元组”,或者只是“元组”。(“元组”是一组共同构成一个整体的项目——双/三/四/五元/等的通用形式。)
下表给出了与 URL 的来源比较的示例http://store.company.com/dir/page.html:
三、跨域网络访问
同源策略控制两个不同源之间的交互,例如当您使用XMLHttpRequest或元素时。这些交互通常分为三类:
通常允许跨源写入。例如链接、重定向和表单提交。某些 HTTP 请求需要预检。
通常允许跨源嵌入。(下面列出了示例。)
通常不允许跨源读取,但读取访问权限通常会因嵌入而泄漏。例如,您可以读取嵌入图像的尺寸、嵌入脚本的操作或嵌入资源的可用性。
以下是一些可能嵌入跨源资源的示例:
JavaScript 与. 语法错误的错误详细信息仅适用于同源脚本。
CSS 应用与. 由于 CSS 的语法规则比较宽松,跨源 CSS 需要正确的Content-Typeheader。如果是 MIME 类型不正确且资源不以有效 CSS 构造开头的跨源加载,浏览器会阻止样式表加载。
显示的图像。
和播放的媒体。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.