浏览器:浏览器的同源策略

概述

 同源策略  是一个重要的安全策略,它用于限制一个 origin 的文档或者它加载得脚本如何能与另一个源的资源进行交互。它能帮助阻挡恶意文档,减少可能被攻击的媒介 [ MDN ] .

同源的定义

如果两个 URL 的 protocolport (en-US) (有指定时)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为 “  协议 / 主机 / 端口元组  ”,或者直接是 “  元组  ” 。(“ 元组 ” 是指一组项目构成的整体,双重 / 三重 / 四重 / 五重 / 等的通用形式)

下表给出了与 URL  http://store.company.com/dir/page.html  的源进行对比的示例:

URL 结果 原因
http://store.company.com/dir2/other.html 同源 只有路径不同
http://store.company.com/dir/inner/another.html 同源 只有路径不同
https://store.company.com/secure.html 失败 协议不同
http://store.company.com:81/dir/etc.html 失败 端口不同 ( http:// 默认端口是80)
http://news.company.com/dir/other.html 失败 主机不同

源的继承

在页面中通过  about:blank  或  javascript:  URL 执行的脚本会继承打开该 URL 的文档的源,因为这些类型的 URLs 没有包含源服务器的相关信息。

例如,about:blank 通常作为父脚本写入内容的新的空白弹出窗口的 URL(例如,通过  Window.open()  )。 如果此弹出窗口也包含 JavaScript,则该脚本将从创建它的脚本那里继承对应的源。

 

浏览器:浏览器的同源策略

上一篇:Linux与Mac通信


下一篇:Hadoop手把手逐级搭建(2) Hadoop完全分布式(full)