禁止iframe显示页面
Disallow iframes from displaying page
如何禁止人们在iframe中使用我的页面?是否可以只使用HTML或必须使用JavaScript/jQuery。
有几种不同的方法可以解决这个问题,这些方法在"破坏框架破坏"的论文中有详细的解释,如果你有机会的话,我强烈建议你阅读。
前两个选项是使用HTTP头,它不使用任何HTML, JavaScript/jQuery,但确实需要在web服务器上配置。
-
使用
X-FRAME-OPTIONS
标头-
X-FRAME-OPTIONS: deny
-帧内无渲染 -
X-FRAME-OPTIONS: sameorigin
-如果原点不匹配则不渲染
-
-
Content-Security-Policy
头允许您使用frame-ancestors
指令指定允许哪些原点将页面嵌入到框架或iframe中。这样做的缺点是它没有提供一种执行侧宽策略的方法。- Twitter的CSP
Content-Security-Policy: frame-ancestors *.twitter.com;
示例 这是浏览器兼容性- http://caniuse.com/contentsecuritypolicy
- Twitter的CSP
EDIT: frame-ancestors
实际上是内容安全策略级别2的一部分,其兼容性可以在这里看到
建议的方法是在页面顶部使用以下代码片段。如果你的页面是框架的,它会隐藏你的内容,否则会显示内容。
<style> html {display:none;} </style>
<script>
if (self == top) {
document.documentElement.style.display = 'block';
}
else {
top.location = self.location;
}
</script>
使用break out of iframe脚本:
<script type="text/javascript">
if (top.location != self.location) {
top.location = self.location.href;
}
</script>
相关文章:
- 在firefox和chrome中的左侧显示iframe滚动条
- 如何使用JS/jQuery在另一个网站上显示iframe中的特定内容
- 显示iframe外部的元素
- 在引导程序弹出窗口中显示iframe
- 突出显示iframe内的文本,同时使用jquery单击文档上的相同文本
- 在IE中显示iframe中的blob失败
- jsPDF在任何IE版本中显示iframe
- 如何解析嵌入的iFrame以仅显示iFrame页面中的片段
- 根据链接显示 iframe 内容
- 在通过 flask Web 服务器呈现的 html 页面中显示 iframe 中文本文件的内容
- 花式框下一个/上一个不显示 iframe
- 谷歌客户端.js Oauth2拒绝显示iFrame
- 在显示 iframe 内容时运行脚本
- iFrame 在页面上,请等待所有 iFrame 内容加载完毕后再显示 iFrame
- 单击li在同一页面上显示iframe中的内容
- on单击“显示iframe 5000”,然后隐藏
- 某些网站不显示Iframe和.load()函数
- 如何在Opera Mobile中正确显示iFrame
- 在页面中显示iframe,仅对来自特定引用的访问者
- 当用户想要关闭网页时显示iframe