我目前正在考虑保护网站免受点击劫持。 German Wikipedia提供了以下最佳做法示例:
<style> html{display : none ; } </style>
<script>
if( self == top ) {
document.documentElement.style.display = 'block' ;
} else {
top.location = self.location ;
}
</script>
然而,我想知道,如果客户端禁用了JavaScript,该怎么办?然后,他将不会显示页面。我们要求提供功能齐全的非JavaScript版本的应用程序。
有任何建议可以实现吗?
答案 0 :(得分: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标题。 / p>