参考答案

说明:

  • i)嵌入第三方 iframe 会有很多不可控的问题,同时当第三方 iframe 出现问题或是被劫持之后,也会诱发安全性问题
  • ii)点击劫持攻击者将目标网站通过 iframe 嵌套的方式嵌入自己的网页中,并将 iframe 设置为透明,诱导用户点击。
  • iii)禁止自己的 iframe 中的链接外部网站的JS
  • 预防方案:
  • i)为 iframe 设置 sandbox 属性,通过它可以对iframe的行为进行各种限制,充分实现“最小权限“原则

ii)服务端设置 X-Frame-Options Header头,拒绝页面被嵌套,X-Frame-Options 是HTTP 响应头中用来告诉浏览器一个页面是否可以嵌入 <iframe> 中eg.

X-Frame-Options: SAMEORIGIN

  • SAMEORIGIN: iframe 页面的地址只能为同源域名下的页面
  • ALLOW-FROM: 可以嵌套在指定来源的 iframe 里
  • DENY: 当前页面不能被嵌套在 iframe 里
  • iii)设置 CSP 即 Content-Security-Policy 请求头
  • iv)减少对 iframe 的使用