防止点击劫持的最佳实践:如果 javascript 被禁用怎么办?
Best practice click jacking prevention: What if javascript is disabled?
我目前正在研究保护网站免受点击劫持。 German Wikipedia 给出了以下最佳实践 示例:
<style> html{display : none ; } </style>
<script>
if( self == top ) {
document.documentElement.style.display = 'block' ;
} else {
top.location = self.location ;
}
</script>
但是,我想知道,如果客户端禁用了 javascript 怎么办?然后,他将不会显示该页面。我们需要发布功能齐全的 none-javascript 版本的应用程序。
有什么建议可以实现吗?
您可以使用
<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 header 旁边.
我目前正在研究保护网站免受点击劫持。 German Wikipedia 给出了以下最佳实践 示例:
<style> html{display : none ; } </style>
<script>
if( self == top ) {
document.documentElement.style.display = 'block' ;
} else {
top.location = self.location ;
}
</script>
但是,我想知道,如果客户端禁用了 javascript 怎么办?然后,他将不会显示该页面。我们需要发布功能齐全的 none-javascript 版本的应用程序。
有什么建议可以实现吗?
您可以使用
<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 header 旁边.