我的应用程序中有这个 Javascript 片段来防止点击劫持:
<script language="javascript" type="text/javascript">
var style = document.createElement('style');
style.type = "text/css";
style.id = "antiClickjack";
style.innerHTML = "body{display:none !important;}";
document.head.appendChild(style);
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
基本上,它默认创建一个样式元素(动态 CSS)来隐藏当前页面的正文。然后,如果它没有检测到点击劫持,则会将其删除。所以,这样做,每个没有 Javascript 的人也可以看到该页面(尽管他们不会受到点击劫持的保护)。
它适用于除 Internet Explorer 之外的所有浏览器,它会引发未知运行时错误异常。有人对如何解决这个问题有建议吗?
谢谢 :-)