如何阻止网站在 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