【发布时间】:2021-02-24 17:43:34
【问题描述】:
我正在尝试使用 iframe 从另一个域连接到我的网站。我使用 Sec-Fetch-Dest 来了解是否从 iframe 调用网站。
这在 Google Chrome 上运行良好,但在 Firefox 上似乎不起作用! 我怎样才能使这项工作也形成Firefox?有没有其他方法可以确定网站是否是从 iframe 调用的?
【问题讨论】:
我正在尝试使用 iframe 从另一个域连接到我的网站。我使用 Sec-Fetch-Dest 来了解是否从 iframe 调用网站。
这在 Google Chrome 上运行良好,但在 Firefox 上似乎不起作用! 我怎样才能使这项工作也形成Firefox?有没有其他方法可以确定网站是否是从 iframe 调用的?
【问题讨论】:
根据 MDN,目前 Firefox 或 Safari(或 IE,但并不奇怪!)不支持此功能:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest
更特别的是,那里的页面甚至没有提到“iframe”作为可能的值,尽管 Chrome 和 Edge 都提供了这一点,正如您所观察到的那样。不过,这些 Sec-Fetch 标头的规范仍然是一个工作草案(有来自 Google 的编辑器),所以我猜 Chrome 正在向前发展,而 Edge 正好在 Chromium 中。作为参考,这是当前的草案规范:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-Fetch-Dest
不幸的是,我不知道有任何可靠的方法来检测来自 Firefox 的 iframe 中的请求。如果您控制 iframe 的初始 src URL,您可以包含一个查询参数,但这自然不会在此后的框架内进行任何导航。
【讨论】: