如何禁止用户在iframe中使用我的网页。是否可以只使用HTML或者我必须使用JavaScript / jQuery。
答案 0 :(得分:2)
有几种不同的方法可以解决这个问题,Busting Frame Busting paper详细解释了这一点,如果你有机会,我强烈建议你阅读。
前两个选项是使用HTTP标头,它不使用任何HTML,JavaScript / jQuery,但需要在您的网络服务器上进行配置。
使用X-FRAME-OPTIONS
标题。
X-FRAME-OPTIONS: deny
- 框架内无渲染X-FRAME-OPTIONS: sameorigin
- 如果原因不匹配则无法呈现 Content-Security-Policy
标题允许您使用frame-ancestors
指令
指定允许将页面嵌入到框架或iframe中的源。对此的不利之处在于它没有提供强制执行广泛政策的方法。
Content-Security-Policy: frame-ancestors *.twitter.com;
编辑:frame-ancestors
实际上是Content Security Policy Level 2的一部分compatibility can be seen here
建议的方法是在页面顶部使用以下代码段。如果内容是iframed,它将隐藏您的页面内容,否则将显示内容。
<style> html {display:none;} </style>
<script>
if (self == top) {
document.documentElement.style.display = 'block';
}
else {
top.location = self.location;
}
</script>
答案 1 :(得分:0)
使用iframe脚本的中断:
<script type="text/javascript">
if (top.location != self.location) {
top.location = self.location.href;
}
</script>