【问题标题】:Can an iframe release itself from allow-same-origin?iframe 可以从允许同源中释放自己吗?
【发布时间】:2015-04-04 15:37:16
【问题描述】:

如果站点 A 有站点 B 的 iframe,并且两个站点位于不同的域上,站点 B 是否可以(通过 js 或其他方式)知道它是否在具有 allow-same-origin 属性的 iframe 中并阻止它?

我需要向站点 B 的管理员保证,他们的站点在站点 A 的 iframe 中是安全的。

编辑:这个问题基本上没有实际意义,因为我误解了 allow-same-origin 的含义

【问题讨论】:

  • 如果站点 B 嵌入到站点 A 的 iframe 中,并且两者位于不同的域中,则站点 B 处于完全控制状态。如果它不想与站点A合作,那么站点A将无法通过浏览器获得任何访问权限。
  • 所以站点 B 可以通过 JS 访问它所在的 iframe 并使用它做它想做的事?
  • 站点 B 像它自己的网页一样运行。它自己的 JS 可以访问它自己的内容,并且只有它自己的内容。它甚至不必知道它位于站点 A 的 iframe 中。它可以正常工作。您所说的 allow-same-origin 属性打开站点 B 以从与站点 B 具有相同来源的其他文档进行访问,但根本不将其打开到具有不同来源的文档。因此,如果站点 A 具有不同的来源,则站点 A 将无法访问站点 B 的嵌入页面。很难弄清楚你在问什么。
  • 我可能误解了 allow-same-origin 的含义。我认为这意味着可以像同源 iframe 一样访问跨域 iframe。

标签: javascript iframe same-origin-policy


【解决方案1】:

如果您采用包含网页站点 A 的正常情况,该站点 A 在站点 B 中嵌入了 iframe,则浏览器的同源限制使站点 A 无法访问站点 B 页面中的任何内容,除非站点 B 专门通常与window.postMessage() 合作以实现这一点 - 一种在不同来源的文档、窗口或框架之间发送消息的方法。默认情况下不允许访问。

您指的是 iframe allow-same-origin 上的沙盒属性。当您添加沙盒属性时,事情会更加关闭,因此允许的访问更少。 allow-same-origin 属性只带回来自同一来源的访问。由于您的站点 A 和站点 B 的示例位于不同的来源,因此这应该不会影响它们之间的访问。站点 A 的页面仍然无法访问站点 B 的页面。

【讨论】:

  • 啊,我确实误解了allow-same-origin是什么意思
猜你喜欢
  • 2015-09-19
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 2014-12-07
相关资源
最近更新 更多