Frame Busting 代码为啥在某些浏览器里失效了?

宇文慧慧 阅读 39

我最近在做前端安全加固,加了防点击劫持的 Frame Busting 代码,但测试发现 Chrome 和 Safari 下有时候还是能被嵌入 iframe,是我写法有问题吗?

我试过用 top.location 替换,也加了 CSP 头,但本地测试时下面这段代码在某些情况下好像没起作用:

<script type="text/javascript">
  if (top !== self) {
    top.location = self.location;
  }
</script>
我来解答 赞 9 收藏
二维码
手机扫码查看
2 条解答
UX丹丹
UX丹丹 Lv1
这个问题挺常见的,你那段代码失效的原因主要有两个:

根本原因是浏览器的安全策略和 iframe 的 sandbox 属性

失效的原因第一,如果攻击者的 iframe 加了 sandbox 属性比如