程序员的安全进阶:分享与学习系列 - 点击劫持

苏西为了逃避一份两天后到期的棘手报告,打开了电子邮箱。她在收件箱里看到一个免费领取 iPad 的链接。点击后,她进入了一个网页,上面写着醒目的横幅:“点击此处领取您的免费 iPad!”。她点击了按钮,但似乎什么也没发生。问题在于,其实已经发生了某些事情。
当她回到收件箱时,发现所有的邮件都被删除了。她明明没有点击过任何“删除”按钮。这到底是怎么回事?
这个邮件网站遭到了点击劫持。点击劫持会诱导用户执行非本意的操作,并可能导致严重的后果。
接下来,我们将探讨点击劫持的原理、危害,以及作为开发者的您可以如何防范此类攻击:
了解点击劫持
点击劫持,也称为“UI 伪装攻击”,是指攻击者在网页上覆盖多个透明层,诱导用户点击他们本不想点击的按钮或链接。
您是否见过被困在车里的虫子?它们会疯狂地撞向窗户,试图飞到外面去。虫子以为外面是树木和开阔的天空,却完全没意识到玻璃挡住了去路。
点击劫持的设计原理与之类似,只不过用户是那只虫子,而您的网站就是那块挡路的玻璃。用户看到了他们想要的东西,比如一部免费 iPhone。攻击者将您的网站嵌入一个透明框架中,并置于免费 iPhone 广告之上。当用户点击按钮试图领取所谓的“免费”奖品时,他们实际上点击的是您网站上的按钮,从而执行了非本意的操作。
为什么点击劫持很危险
攻击者利用点击劫持能做什么?这在很大程度上取决于目标网站的功能。
攻击者可以诱导用户在社交媒体上点赞或分享攻击者的网站。由于许多人为了方便起见会保持社交媒体账号的登录状态,这种攻击很容易得逞。
如果您的网站可以被嵌入框架,那么通过点击按钮完成的敏感操作就可能成为攻击向量。例如,用户本想点击领取免费 iPad,结果却修改了您网站上的账户设置,导致账户安全性降低。此类攻击曾针对 Adobe Flash 插件设置页面发生过。攻击者将设置页面置于透明框架中,诱导用户允许任何 Flash 动画访问麦克风和摄像头。随后,攻击者便可以录制受害者的视频,造成严重的隐私侵犯。
如果邮件客户端被嵌入到恶意网站中,攻击者可以诱导用户删除收件箱中的所有邮件,或将邮件转发到攻击者控制的邮箱地址。
总之,用户无法看到他们点击的真实内容,因此他们可能会被诱导点击任何东西。无论是社交分享还是下载恶意软件,其可能性不胜枚举。
如何防御点击劫持
点击劫持是可以预防的。预防点击劫持的推荐方法是为您的网站定义内容安全策略 (CSP)。通过使用 HTTP 响应头“frame-ancestors”,您可以控制网站被嵌入框架的方式。
- “frame-ancestors none” - 禁止任何其他网站嵌入您的网站。这是推荐的设置。
- “frame-ancestors self” - 仅允许您网站内的页面嵌入您的网站。
- “frame-ancestors self <uri list=""> - 仅允许 URI 列表中的网站嵌入您的网站,其他网站均被禁止。</uri>
目前并非所有主流浏览器都支持 CSP 的 frame-ancestors 指令。请使用“X-Frame-Options”HTTP 响应头作为这些浏览器的备选方案。
- DENY - 禁止任何人将您的网站嵌入框架。这是推荐设置。
- SAMEORIGIN - 类似于 CSP 中的“self”。仅允许您在自己的页面中嵌入内容,禁止他人嵌入。
- ALLOW-FROM <uri> - 仅允许指定的 URI 嵌入您的内容。</uri>
防范点击劫持
点击劫持是一种隐蔽且极具误导性的攻击手段。如果您的产品被攻击者利用,可能会导致声誉受损和收入损失。查看我们的免费学习资源,深入了解点击劫持。
使用内容安全策略 (CSP) 和“X-Frame-Options”响应头,防止他人恶意利用您的网站。切勿让攻击者操纵您的用户。防范点击劫持。
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)