点击劫持(Clickjacking)攻击与防御详解
点击劫持是一种隐蔽的前端攻击手段,攻击者通过巧妙的页面布局欺骗用户,使其在不知情的情况下点击恶意链接或执行非预期操作。这种攻击利用了浏览器对 iframe 的嵌套支持,具有较强的迷惑性。以下从攻击原理、危害及防御措施展开说明。
点击劫持的攻击原理
点击劫持的核心是通过透明图层覆盖合法页面,诱导用户点击,具体流程如下:
- 构造恶意页面:攻击者创建一个页面,通过 iframe 嵌套目标网站(如银行、社交平台等含有敏感操作的页面),并将 iframe 设置为透明(
opacity: 0)。 - 覆盖视觉元素:在恶意页面上放置诱骗性内容(如 “领取红包”“点击抽奖” 等按钮),位置与 iframe 中目标网站的敏感操作按钮(如 “转账”“确认支付”)完全重合。
- 诱导用户点击:用户看到的是恶意页面的诱骗内容,点击时实际点击的是透明 iframe 中的目标网站按钮,从而在用户不知情的情况下触发敏感操作(如确认转账、授权登录)。
示例场景:
攻击者制作一个 “免费领取会员” 的页面,透明 iframe 嵌套某支付平台的 “确认付款” 页面,用户点击 “领取” 时,实际触发了支付平台的付款操作。
点击劫持的危害
- 非授权操作:用户在不知情的情况下执行敏感操作(如转账、修改密码、授权第三方应用)。
- 隐私泄露:诱导用户点击后,可能触发个人信息的提交或数据泄露(如点击 “查看详情” 实际触发个人资料的公开)。
- 账号安全风险:若目标页面涉及账号操作(如绑定手机、更换邮箱),可能导致账号被劫持。