shfshanyue / Daily-Question

互联网大厂内推及大厂面经整理,并且每天一道面试题推送。每天五分钟,半年大厂中
https://q.shanyue.tech
4.92k stars 508 forks source link

【Q658】什么是点击劫持(ClickJacking),如何预防 #676

Open shfshanyue opened 3 years ago

shfshanyue commented 3 years ago

可以使用 HTTP X-Frame-Options 响应头以及 CSP: frame-ancestors 指令,避免自己网站被当做 iframe 嵌入到非法网站引导用户点击

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN

或者使用 CSP 的指令 frame-ancestors 进行预防

Content-Security-Policy: frame-ancestors 'none';
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;

同时,也可以使用 Javascript 进行控制,当发现自身网站置于 iframe 中时,将不予展现

<head>
</head>
<body>
  <script>
    // 如果发现现在是在 iframe 中
    if (self !== top) {
      document.write('')
    }
  </script>
</body>
shfshanyue commented 3 years ago