来理解学习一下“点击劫持”

关注安全
0 511

初识“点击劫持”,是从一串javascript代码看到的。

来理解 一下:

点击劫持(Clickjacking)是一种通过视觉欺骗的手段来达到攻击目的手段。往往是攻击者将目标网站通过 iframe 嵌入到自己的网页中,通过 opacity 等手段设置 iframe 为透明的,使得肉眼不可见,这样一来当用户在攻击者的网站中操作的时候,比如点击某个按钮(这个按钮的顶层其实是 iframe),从而实现目标网站被点击劫持。

————————————————

预防手段

1)让 iframe 不能够跨域访问

判断 top.location.hostname (iframe 嵌入的那个网站的域名)和 self.location.hostname (iframe 自己的域名)不一致时可以给出可能不安全的提示,用户确认安全的情况下再操作。

2)在响应头中加上 X-Frame-Options: sameorigin

表示允许相同域嵌入此页面(X-Frame-Options: deny 表示禁止内嵌此页面)。

3)防止网页被其他网站内嵌为 iframe

首先在页面中添加如下样式:

body{display: none;}


然后添加类似如下的脚本:

<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
<<span class="hljs-regexp">/script>

参考资料:

https://blog.csdn.net/2301_79360008/article/details/132332322

https://www.kancloud.cn/wizardforcel/owasp-cheat-sheet-zh/121935