点击劫持攻击

码不停提

2026-02-02
23 次浏览
0 条评论

点击劫持攻击(Clickjacking)介绍

网站安全漏洞
Clickjacking
分享:

什么是点击劫持?

点击劫持(Clickjacking),又称“界面劫持”或“UI 欺骗”,是一种Web安全攻击方式,攻击者诱导用户在无意间点击了被隐藏或伪装的页面元素,从而达成攻击目的。通常表现为:攻击者在自己的网站页面中通过 iframe、透明遮罩等技术“嵌套”目标网站,并精心布局和视觉伪装,使用户误以为点击的是正常按钮,实则是在操作受害网站。


点击劫持的危害

  1. 非法操作账户
    • 比如在用户已登录银行、网购等网站的情况下,点击攻击页面上的“按钮”实际上是在受害网站上进行资金转账、积分兑换等操作。
  2. 泄露敏感信息
    • 用户以为在输入普通信息,实则被提交到攻击者控制页面或被利用发起操作。
  3. 社会工程与钓鱼
    • 利用伪装页面诱骗用户完成攻击者期望的操作(如点赞、关注、转发、授权等)。
  4. 触发恶意操作
    • 启用设备摄像头、麦克风、发送邮件、变更设置等高危操作。

点击劫持的典型攻击原理

  • iframe嵌套法 攻击者在自己的网站中通过 <iframe src="受害网站URL"> 引入受害页面,并通过CSS控制iframe的位置和透明度。
  • 诱导用户点击 攻击者将吸引用户点击的内容(如抽奖按钮、图片等)覆盖在iframe之上,或者让iframe与诱导元素重叠对齐,使用户实际点击了受害页面的按钮。

示例攻击代码

<!-- 诱导用户点击“领取红包”按钮 -->
<button style="position:absolute;z-index:2;">点击领取红包</button>
<!-- 被透明的iframe覆盖,实际点击是iframe中的内容 -->
<iframe src="https://bank.com/transfer" style="opacity:0;position:absolute;top:0;left:0;width:200px;height:50px;z-index:3;"></iframe>

用户以为在点击自己的按钮,实则是在目标网站触发了操作。


防御点击劫持的措施

  1. 设置防护响应头

    • X-Frame-Options 通过设置以下 HTTP 响应头,防止页面被嵌入到 iframe 中:

      X-Frame-Options: DENY

      X-Frame-Options: SAMEORIGIN

      现代浏览器会阻止不符合条件的嵌套。

    • Content-Security-Policy (CSP) 的 frame-ancestors 更灵活地指定允许哪些来源嵌入页面:

      Content-Security-Policy: frame-ancestors 'self'
  2. JavaScript 跳窗检测 用 script 检测页面是否被嵌套在 iframe 内,如果是则跳转到顶级窗口:

    if (window.top !== window.self) {
        window.top.location = window.self.location;
    }
  3. 关键操作确认 对于敏感操作(如资金转账、删除等)增加二次确认或验证码校验,防止无意识点击直接生效。

  4. 最小化第三方嵌套需求 除特殊用途外,生产环境页面应避免被嵌入 iframe、object、embed 等元素。


总结

点击劫持攻击隐蔽性强、危害大,能够在用户毫不知情的情况下发起高危操作。开发者应充分利用 HTTP 安全响应头、Javascript 检测、操作确认等多重防护措施,防止网站被用于点击劫持,保障用户账户和信息安全。

评论区 (0)

你需要先 登录 后才能发表评论。
还没有人评论,赶快成为第一个吧。