MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

档案同源策略

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

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

举例来说,我们从index.html进入同一层资料夹的另一个foo.html档,而这个foo.html档想要读取bar.html档,只有当bar.html存放于index.html所在资料夹或是index.html所在资料夹底下的子资料夹中,foo.html才能读取bar.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。

文档标签和贡献者

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