【问题标题】:setting document.domain when SOP not violated anyway无论如何都没有违反 SOP 时设置 document.domain
【发布时间】:2011-08-11 11:19:33
【问题描述】:

如果无论如何都不会违反 SOP,我正在尝试确定在从 iframe 加载内容时设置 document.domain='example.com' 是否有用。 在我的场景中,我在 www.example.com 上有一个 html 页面,它在 www.example.com/iframe (所有端口 80)上加载了一个 iframe - 所以,据我所知,这里不需要设置 document.domain 属性。

在 FF3 中,从 iframe 流式传输的 javascript 代码不会执行,除非我在父页面和 iframe 上明确设置 document.domain 属性。在 FF4 中,它不会在任一设置中执行。我也尝试过在主机名中使用 www 前缀 - 没有区别。 Firebug 显示包含 <script> 标记的全部内容的分块部分已下载。

这是否意味着在不涉及子域或 xss 的情况下设置 document.domain 仍然有用?

【问题讨论】:

    标签: javascript comet same-origin-policy


    【解决方案1】:

    除非发生其他情况,否则设置 document.domain 不应该对您的情况产生影响。

    我建议你不要碰document.domain 并尝试找到问题的真正原因。干预document.domain 只会在通过 iframe 等进行 AJAX 或文件上传时导致麻烦,因为这些不一定会选择新的域后缀。

    但要回答,不,它除了在跨子域通信时放松 SOP 之外没有其他目的。

    【讨论】:

    • 感谢您的回答。可以简单地“获取”document.domain 有什么效果吗?还有“除非发生其他事情” - 其他事情会是什么?
    猜你喜欢
    • 2016-11-10
    • 1970-01-01
    • 2014-04-10
    • 2014-04-07
    • 1970-01-01
    • 2016-07-19
    • 2012-05-12
    • 2019-12-19
    • 1970-01-01
    相关资源
    最近更新 更多