【发布时间】:2017-04-15 08:46:23
【问题描述】:
我正在尝试详细了解同源政策。为此,我试图看看它是如何与代码一起工作的(我是 web 开发中的一个完全的菜鸟),所以我启动了一个 Flask 服务器并创建了一个域 local.com 和一个子域 store.local.com。然后在子域的store.html 页面中,我创建了一个带有src=http://local.com 的iframe - 没有以任何方式修改document.domain 属性,如阅读here。
现在从我所读的内容来看,我认为这会失败,但它正确地显示了超级域index.html 页面的内容。我已经重复了在两台不同的物理计算机上托管两个域的实验,但这并没有改变任何东西。 (我试过 Firefox 和 Chrome)
现在我也尝试了src=http://google.com,这实际上被 SOP 阻止了。所以目前我有点困惑,有人可以帮我理解一下吗?谢谢。
【问题讨论】:
-
在我看来,SOP 允许访问同一域上的不同子域。其中 store.local.com 与 local.com 是同一个域,而 google.com 是一个完全独立的域。
-
同源策略在 iframe 方面略有不同。默认情况下,它允许在 iframe 中显示页面,但是如果不合作,两者就无法通信。但是,iframe 中的页面可能会阻止您在 iframe 中显示该页面。
标签: javascript google-chrome firefox same-origin-policy