同源政策似乎无效

时间:2016-11-30 21:16:51

标签: javascript google-chrome firefox same-origin-policy

我试图详细了解相同的原始政策。为此,我试着看看它是如何与代码一起工作的(我在Web开发中是一个完整的noob),所以我开始了一个Flask服务器并创建了一个域local.com和一个子域store.local.com。然后,在子域的store.html页面中,我使用iframe创建了src=http://local.com,而不会以here的任何方式修改document.domain属性。

现在从我读过的内容来看,我认为这会失败,但它会正确地显示超级域index.html页面的内容。我重复了在两台不同的物理计算机上托管这两个域的实验,但这并没有改变任何东西。 (我已尝试过Firefox和Chrome)

现在我也尝试过使用src=http://google.com,这确实会被SOP阻止。所以目前我有点陷入困惑,任何人都可以帮助我理解它吗?感谢。

1 个答案:

答案 0 :(得分:1)

IFrame通常免于同一原产地政策。

但是,如果您在致电http://google.com时查看HTTP响应标头,则会看到以下标头:

x-frame-options:SAMEORIGIN

明确地tells your browser that it should prevent the page from being displayed across origins

MDN describes this particular behavior:

  

以下是可能嵌入跨源的资源的一些示例:

     

[...]

     
      
  • <frame><iframe>的任何内容。网站可以使用X-Frame-Options标头来阻止这种形式的跨域交互。
  •