「 网络安全术语解读 」点击劫持Clickjacking详解

引言:要想深入理解点击劫持攻击,我们需要先清楚iframe的用途及优缺点。

1. 关于iframe

iframe是HTML语言中的一部分,通常用于在网页中嵌入其他网页的内容,如图像、视频、音频、链接等。它允许在一个网页中插入另一个网页,就像在一个网页中插入一个表格一样。

使用iframe有几个优点:

  • 内容重用:iframe嵌入的内容通常已经预先加载,这样可以减少加载时间,提高页面加载速度。
  • 内容管理:嵌入的内容通常由其所有者或管理员进行维护和更新,这对于一个包含多个独立内容的网站来说非常重要。
  • SEO友好:通过iframe嵌入的内容可以通过外部链接直接访问,有助于搜索引擎优化(SEO)。

然而,iframe也有一些缺点,由于iframe的嵌套关系,可能会导致浏览器加载速度变慢,甚至影响页面的布局和样式。另外,如果对iframe的内容没有正确的权限控制,可能会泄露敏感信息或导致安全风险(PS:这就引出了本文接下来要讨论的重点)。

2. Clickjacking的定义

点击劫持(Clickjacking)是一种常见的网络安全攻击手段,它是一种基于界面的攻击手段,利用了隐藏的网站通过诱骗用户点击诱饵网站中的其他内容来点击一个隐藏的网站上的可操作内容。

举例:

一个网络用户访问一个诱饵网站(可能是通过电子邮件提供的链接),并点击一个按钮以赢得奖品。不知不觉中,他们被攻击者欺骗,按下了另一个隐藏按钮,结果在另一个网站上执行了账户支付。

Note:这种攻击技术依赖于在iframe中嵌入一个或多个包含按钮或隐藏链接的不可见网页,这些网页在用户预期的诱饵网站内容上方叠加。这种攻击与CSRF攻击不同,因为用户需要执行诸如点击按钮之类的操作,而CSRF攻击则是在用户不知情或未输入的情况下伪造整个请求。

3. 常见点击劫持手段

  • 界面欺骗:攻击者通常会使用一些HTML和CSS技术,如使用透明度、动画效果、边框阴影等视觉欺骗手段,使得用户界面看起来像一个合法的应用程序或网站。
  • 跨站脚本(XSS)攻击:攻击者可能会利用跨站脚本攻击,获取用户的用户名、密码或其他敏感信息。在某些情况下,攻击者可能会在受害者的浏览器上注入恶意代码,并利用浏览器的漏洞来控制用户的界面。
  • 客户端交互设计:攻击者通过精心设计的交互设计,使得用户点击错误的按钮或链接,导致执行恶意操作。例如,攻击者可能会在用户界面中设置一个假的提交按钮,诱使用户点击它并提交敏感信息。

4. 如何缓解点击劫持攻击

为了防止Clickjacking攻击,可以采用以下几种方法:

  • 1. 使用X-Frame-Options头部:这是一种HTTP标头,用于告诉浏览器哪些网站可以包含这个页面。对于一个公共网站,通常使用"DENY"或"SAMEORIGIN"来防止其他网站将该页面嵌入其中。

  • 2. 使用CSP头部: CSP(Content Security Policy)是一种强大的HTTP标头,可以配置一个网页内的内容。它可以用于禁止嵌入页面中的某些iframe或all iframe(所有的iframe都不被允许)。如果使用恰当,可显著降低Clickjacking的风险。关于CSP的详细介绍可以参阅博主文章《「 网络安全术语解读 」内容安全策略CSP详解》

  • 3. 增强用户界面的可见性:通过将按钮或链接置于iframe之外,使它们更易于看到,可以减少用户被欺骗点击的可能性。

  • 4、提示用户确认操作:在执行敏感操作之前,可以向用户显示一个确认框,要求他们确认操作。这可以增加用户的警觉性。

  • 5. 启用跨站请求伪造保护:大多数现代浏览器都内置了跨站请求伪造(CSRF)的保护机制。如果启用了这个机制,用户就不太可能受到Clickjacking攻击的影响,因为攻击者需要用户执行一些操作时必须使用用户已经登录并授权的网站。

Note:1、2是服务端的承防护策略,3、4是客户端的防护策略,5是服务端+客户端防护策略。

此外,加强安全意识培训和教育也是非常重要的,以减少人为因素导致的安全漏洞。

5. 参考

[1] https://portswigger.net/web-security/clickjacking

相关推荐
黑客Jack1 小时前
防御 XSS 的七条原则
安全·web安全·xss
东方隐侠安全团队-千里2 小时前
网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析
网络·chrome·web安全
Mitch3114 小时前
【漏洞复现】CVE-2021-45788 SQL Injection
sql·web安全·docker·prometheus·metersphere
网络安全King4 小时前
网络安全 - SQL Injection
sql·web安全·php
m0_748237055 小时前
2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web&数据安全&AI 题解WriteUp
前端·安全·web安全
hwscom6 小时前
如何永久解决Apache Struts文件上传漏洞
java·服务器·struts·web安全·apache
网络安全(华哥)6 小时前
X-Forwarded-For注入漏洞
windows·安全·web安全
独行soc8 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍10基于文件操作的SQL注入(File-Based SQL Injection)
数据库·安全·web安全·漏洞挖掘·sql注入·hw
独行soc21 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw