什么是跨网站脚本(XSS)

跨网站脚本(XSS)是一种以网络应用程序为目标的代码注入安全攻击,发送在用户的网络浏览器上运行的恶意客户端脚本应。它们不会直接攻击目标,而是利用脆弱的网站、网络应用程序等,在用户交互时进行跨网站脚本攻击。。

例如,如果一个毫无怀疑的用户访问了一个受到攻击的网站,攻击者的恶意脚本就会被加载并运行在用户的浏览器中。。这将导致机密数据泄露、被盗和会话劫持。。由于JavaScript广泛支持多种网页浏览器和整个平台,所以JavaScript经常受到XSS攻击者的攻击,但只要浏览器支持,JavaScript可以创建任何语言的攻击。就会产生财富。。XSS攻击已经使用了15年以上,它被证明是非常有效的,现在仍然是常见的和可行的攻击向量。。

クロスサイトスクリプティングの影響

当网页被跨网站脚本攻击时,就会出现很多问题。。可能的问题包括:

公开机密用户数据

  • 攻击者劫持在线账户并伪装成用户
  • 网站内容显示的破坏
  • 恶意“特洛伊木马”程序的上传
  • 网页进入有害网站

如果不及时检测并采取行动,交叉细胞脚本就会对组织造成危害。。恶意软件一旦被注入,企业和客户都将面临XSS攻击的风险,声誉和业务关系都会受到负面影响。。

作为跨网站脚本攻击的一个不幸的例子,在2018年末被广泛使用的名为“Magecart”的信用卡诈骗恶意软件引起了广泛关注。。这个恶意软件将自己注入在线支付网站,这是第一次出现如此大规模的此类攻击。。用户的信用卡信息可能被上传到攻击者管理的服务器上,被买卖或被非法购买。。

クロスサイトスクリプティング攻撃の種類

跨网站脚本攻击通常分为以下几种类型:。

  • 反射型XSS
  • 积累型XSS
  • 基于DOM的XSS

反射型XSS

反射式XSS攻击利用脆弱的网站来攻击目标,这些网站可以接受来自目标自己的浏览器的数据(即恶意脚本)。。这种攻击也被称为“非积累型”,因为恶意脚本是客户端自己发送的,而不是存储在脆弱的服务器上。。

反射式XSS攻击的一个容易理解的例子是,创建一个URL作为查询参数,通过一个小的恶意脚本,到针对XSS存在漏洞的搜索页面的网站:

http://vulnerable-website.com / Search?Search_term=「

在这种情况下,攻击者需要让目标通过浏览器访问这个URL。。为了实现这一点,你可以发送包含URL的邮件(用户有理由想要点击它),或者在普通的没有漏洞的网站上发布URL以便目标点击。。。

当目标实际点击链接时,漏洞网站会接受一个查询参数:Search_term。网站将该值设定为vulnerable-website.假设你想在com网站上搜索,这个值实际上是恶意的脚本。。ユーザーが何かを検索しているときに多くのウェブサイト検索ページがそうするように、この検索ページも「​​​​...搜索中”,但是由于漏洞网站没有对Search_term值做出反应,所以恶意脚本被注入目标浏览器加载的网页中,这就是目标由t的浏览器运行。。

积累型XSS

顾名思义,积累型XSS将脚本存储在有漏洞的服务器上。。与目标发送恶意脚本的反射式攻击不同,用户是在与有漏洞的网站或应用程序进行正常交流时受到攻击的。。

积累型XSS攻击的一个简单例子是攻击者在脆弱网站上托管的论坛上发布消息。。与一般的非恶意论坛帖子不同,这个帖子包含了攻击者的恶意脚本。。当你访问这个论坛帖子时,你的浏览器会读取并运行恶意脚本。。

反射型和积累型XSS攻击的主要区别在于,积累型XSS的攻击对象是脆弱的网站和应用程序的所有用户。。

基于DOM的XSS

另一种类型的XSS攻击是基于DOM的。网站和应用程序向访问者提供的客户端脚本是存在漏洞的。。这种攻击与反射型和积累型XSS攻击不同,因为网站和应用程序不会直接向目标浏览器发送恶意脚本。。在DOM based XSS攻击中,你的网站和应用程序会有一个带有漏洞的客户端脚本,它会向你的浏览器发送恶意脚本。。和反射式攻击一样,基于DOM的攻击不会将恶意脚本存储在有漏洞的服务器上。。

基于DOM的XSS攻击的一个简单的例子和上面的反射XSS的例子一样。。攻击者会创建一个恶意脚本“Search_term”来引诱目标。。当目标点击URL时,浏览器会加载网站搜索页面和漏洞客户端处理脚本。。当“seach_term”作为查询参数发送到网站后端进行处理时,网站本身不会生成使用注入的恶意脚本的网页。。相反,由于网站的脆弱客户端脚本被设计为在本地(目标浏览器)动态地取代搜索词值(恶意脚本),因此目标浏览器读取攻击者的脚本嵌入,执行。。

基于DOM的XSS攻击暴露了一个事实:XSS的漏洞并不局限于服务器端软件。。

クロスサイトスクリプティング攻撃の阻止方法

跨网站脚本攻击有多种变化,因此企业需要知道如何正确地保护自己,防止将来的问题。。复杂的网站使得监控变得更加困难。。随着时间的推移,攻击的频率会继续增加。。

为了保护用户不受XSS攻击,我们提出以下方法。。

用户输入差异图:

  • 验证以捕捉潜在的恶意用户输入。
  • 对输出进行编码,防止潜在恶意的用户输入数据触发浏览器自动读取和执行。

用户输入数据的使用限制:

  • 只在必要的情况下使用。

内容安全策略的使用:

  • 提高对XSS攻击尝试的保护和减缓水平。

请定期使用网络应用程序漏洞扫描工具检查软件的XSS漏洞。