0

我目前正在研究保护网站免受点击劫持。德语 Wikipedia提供了以下最佳实践示例:

<style> html{display : none ; } </style>
<script>
    if( self == top ) {
       document.documentElement.style.display = 'block' ; 
    } else {
       top.location = self.location ; 
    }
</script>

但是,我想知道,如果客户端禁用了 javascript 怎么办?然后,他将不会显示该页面。我们需要发布一个功能齐全的非 JavaScript 版本的应用程序。

有什么建议可以实现吗?

4

1 回答 1

2

您可以使用

<script>
    if (self !== top) {
       document.documentElement.style.display = 'none';
       top.location = self.location;
    }
</script>

在导航尝试被成功攻击的情况下仍然隐藏页面。self.location.href + " cannot be displayed in a frame."您也可以改为显示一条消息。

当然,这不会阻止您的页面在禁用 JavaScript 时显示在框架中(甚至可能不是全局的,而只是在您的框架中),因此您应该始终将相应的 X-Frame-Options 标头发送到旁边。

于 2016-07-20T08:30:36.857 回答