document.domain
获取/设置当前文档的原始域部分, 用于 同源策略.
使用 document.domain 是让子域安全访问(open, ,需要同时将子域和父域的 document.domain 设置为相同的值。必须要这么做,即使是简单的将父域设置为其原来的值。没有这么做的话可能导致授权错误。
浏览器单独保存端口号。任何的赋值操作,包括 document.domain = document.domain 都会以 null 值覆盖掉原来的端口号。因此 company.com:8080 页面的脚本不能仅通过设置 document.domain = "company.com" 就能与company.com 通信。赋值时必须带上端口号,以确保端口号不会为 null。
在根域范围内(1级域名,顶级域名之下),HTML5允许你把domain属性的值设置为它的上一级域。如developer.mozilla.org设为mozilla.org
HTML5 会区分 document.domain 属性 从没有被设定过值 和 被显示的设定为跟该文档的URL的domain一致的值,尽管这两种状况下,该属性会返回同样的值。两个文档,只有在 document.domain 都被设定为同一个值或者本来就相同,这两种条件下,一个文档才可以去访问另一个文档。
如果不是因为这个特殊的策略,每一个站点都会成为他的子域的XSS攻击的对象(例如,https://bugzilla.mozilla.org 可以被来自 https://bug*.bugzilla.mozilla.org 站点的bug附件攻击)。