4

我需要为我的 Web 应用程序添加一个基于 javascript 的 framebuster,以帮助防止不支持 X-FRAME-OPTIONS 的旧版浏览器的点击劫持(或跨帧脚本)攻击。

在网上搜索后,我发现目前似乎有两种方法,如下所示。作为一个完整的 javascript 新手,我更喜欢方法 1 的简单性。

我的问题是- 这两种方法目前仍然有效还是其中任何一种已经“失败”?

编辑:将我的问题更改为询问这两种方法,而不仅仅是方法 1。

方法 1(来自http://en.wikipedia.org/wiki/Framekiller#Modern_framekiller):

if (self == top) {
    document.documentElement.style.display = 'block';
} else {
    top.location = self.location;
}

方法 2(来自https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet#Best-for-now_Legacy_Browser_Frame_Breaking_Script):

<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>

非常感谢。

4

0 回答 0