如何阻止网站在 iframe 中加载?

Posted

技术标签:

【中文标题】如何阻止网站在 iframe 中加载?【英文标题】:how to block website from loading in iframe? 【发布时间】:2013-11-19 12:29:01 【问题描述】:

最近我尝试在 iframe 中加载 youtube 网站,但我检查它没有工作。我使用了这个简单的代码。

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<iframe   src="http://www.youtube.com" ></iframe>
</body>
</html>

    我想知道,为什么我的网页无法加载 youtube 网站 iframe..

    我使用什么代码在我的网页中加载 youtube 网站。

    我如何在我的网站中使用相同的技术,所以没有人可以添加我的网站 在 iframe 中。

【问题讨论】:

【参考方案1】:

对于现代浏览器,需要在Header中启用X-Frame-Options, x-frame-options 标头可以通过 Web 服务器配置设置来实现。

您可以在 Header 中查看 X-Frame-Options,如下图所示,

参考:https://www.keycdn.com/blog/x-frame-options/

如果您的浏览器不支持它,那么您将没有点击劫持防御,并且可以使用 HTTP Header Field X-Frame-Options,

  <meta http-equiv="X-Frame-Options" content="deny">

X-Frame-Options 有三个可能的值:

拒绝 - 该页面无法在框架中显示,无论站点是否尝试这样做。

同源 - 页面只能显示在与页面本身同源的框架中。

允许来自 uri - 页面只能显示在指定原点的框架中。

【讨论】:

所以没有办法在 iframe 中使用网页,因为我看到一些网站和软件.. 使用嵌入 youtube 网页,所以如果他们可以使用 youtube 类型 bigwebsite.. 所以可能有漏洞在这个techniq..还是这是完美的..? 注意:自 2016 年 4 月起,此元标记不再适用于大多数浏览器。 RFC 7034 建议忽略此元标记:tools.ietf.org/html/rfc7034#section-4。大多数主要浏览器相应地删除了支持。见bugs.webkit.org/show_bug.cgi?id=156625 澄清一下,HTML 元标记现在确实没用了(参见developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…),但X-Frame-Options HTTP 标头仍然适用,并且是正确的做法。【参考方案2】:

截至 2016 年 4 月,Krish R 接受的答案不再有效。 Most browsers 现在忽略 RFC 7034 推荐的元标记。

实现此标头的正确方法是让服务器将其与文档一起发送。有关详细信息,请参阅X-Frame-Options 上的 mozilla 文档。

【讨论】:

以上是关于如何阻止网站在 iframe 中加载?的主要内容,如果未能解决你的问题,请参考以下文章

如何识别网页是在 iframe 中加载还是直接加载到浏览器窗口中?

如何识别网页是在 iframe 中加载还是直接加载到浏览器窗口中?

不要同时在 Owl Carousel 中加载所有 iFrame

如何检查您的网站是不是已在 iframe 中加载并获取父 URL? [复制]

CDN导致IFrame负载问题

有没有办法阻止内容在最小宽度屏幕中加载