提问人:AnonBird 提问时间:11/16/2023 更新时间:11/16/2023 访问量:25
没有源的 iframe 之间的同源策略 -- iframeception
Same Origin Policy between iframes without origins -- Iframeception
问:
我们的应用程序过去常常使用以下工作代码嵌入第三方,而不会过于谨慎:
<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" srcdoc="<script src='https://thirdparty.com/script.js'></script>"></iframe>
我希望删除以防止该第三方访问我们域中的任何内容,因为第三方不需要它。allow-same-origin
但是,碰巧此脚本会创建一个新的 iframe(在我们拥有的 iframe 沙盒中)。iframe src 是,第一个 iframe 与它的子 进行通信。about:blank
contentWindow
由于 .现在它已被删除,站点的 iframe 和 iframe 的子级似乎都共享一个源,同源策略不接受该源,并导致以下错误:allow-same-origin
null
Uncaught DOMException: Failed to read a named property 'document' from 'Window': Blocked a frame with origin "null" from accessing a cross-origin frame.
恢复,这是以下的起源:sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
site.com
|===> iframe A (origin: site.com)
|===> iframe B (origin: site.com)
这是起源sandbox="allow-scripts allow-popups allow-forms"
site.com
|==> iframe A (origin: null)
|===> iframe B (origin: null)
这是我希望的起源:
site.com
|==> iframe A (origin: some origin that is not site.com ?)
|===> iframe B (origin: some origin that is not site.com ?)
我有哪些选择,以便 iframe 和 iframe 的子项共享相同的源,而我们的网站和 iframe 不共享?
答: 暂无答案
评论
srcdoc
B