在Gecko 1.8或更早版本中,任意两个file:URI被认为是同源的。换句话说,本地磁盘上的任何HTML文件都可以读取本地磁盘上的任何其他文件。

从Gecko 1.9开始,文件只允许读取某些其他文件。具体来说,只有当源文件的父目录是目标文件的祖先目录时,文件才能读取另一个文件。然而,目录不能以这种方式加载。

举例来说,你有一个文件foo.html想要读取另一文件bar.html,你通过index.html进入了它,只有当bar.html存放于与index.html相同文件夹,或是index.html所在文件夹底下的子文件夹中时,才能读取成功。

档案同源政策会影响到所有对同源政策的检查的行为,包括  XMLHttpRequest , XSLT,与XBL。

至于跨window的DOM存取,基本上每一个档案都被视为不同源,除了以下例外:若是档案B被另一个档案A载入(例如透过iframe或window.open() ),而档案A、B遵照此份档案同源政策可以被判定属于同源,那么当发生跨window的DOM存取时,也可以视为同源。(译者注:应该可以理解为,可以通过subframe, link, location set, 调用window.open()之类的方法加载同源文件并对DOM进行操作

比如说  /home/userfoo.html  是一个frameset,而它下嵌了另一个/home/user/subdir/bar.html  的  frame ,那么foo.html和bar.html可以视为同源,但如果bar.html的位置变成/home/user/bar.html,那么foo.html和bar.html便不可以视为同源。

另外当使用者想要关闭这些档案同源政策检查,可以变更  security.fileuri.strict_origin_policy  偏好设定为从预设true到false。

文档标签和贡献者

 此页面的贡献者: chrisdavidmills, NeveriaSmart, a-pple, xgqfrms-GitHub, Go7hic
 最后编辑者: NeveriaSmart,