什么是跨站点脚本 (XSS) 以及为什么它是一种安全威胁?

跨站点脚本 (XSS) 攻击在整个互联网中广泛存在。它们可用于冒充用户、窃取私人信息、破坏网站等等。那么 XSS 攻击到底是什么?为什么它是一种安全威胁?以及如何防止跨站点脚本攻击?

什么是跨站点脚本攻击?

跨站点脚本,通常称为 XSS,是一种 Web 应用程序安全漏洞,允许攻击者向网页注入任意客户端代码或脚本。

当毫无戒心的用户与受感染的网页进行交互时,就会触发注入的代码,受害者就会受到攻击,这种攻击可能会窃取敏感信息或以受害者的利益为代价进行未经请求的交易。

恶意脚本可以伪装成用户,窃取信息和 cookie,操纵网站内容,破坏网站并将受害者重定向到恶意网站。

XSS 攻击并不新鲜。它们最早出现在 1990 年代,从那时起就一直被开放 Web 应用程序安全项目(OWASP)列为十大网络安全风险之一,2021 年报告的 XSS 攻击次数超过 274,000 次。

XSS 攻击如何工作?

XSS 攻击与网站无法清理输入数据有关。这意味着网站无法正确地从其接受的输入中剥离 HTML 内容。

为什么这很糟糕?您的网络浏览器无法区分原始网站代码和注入的代码。因此,如果攻击者输入恶意脚本(JavaScript、VBScript 等),它将被视为有效输入,浏览器会将其与网站本身的代码一起呈现。

跨站脚本攻击有多种方式,所有方式都取决于各种因素,例如端点、脚本如何触发、有效负载是否仅反映在客户端还是可以存储在服务器端数据库中等等。

跨站点脚本攻击的类型

根据脚本的执行方式和攻击的传递方式,跨站点脚本 (XSS) 攻击主要分为三种类型:

  • 反射型 XSS。
  • 存储型 XSS。
  • 基于 DOM 的 XSS。

XSS

那么这些 XSS 攻击意味着什么?

反射型跨站脚本 (XSS)

反射型跨站脚本 反射型跨站脚本攻击是一种 XSS 攻击,其中注入的代码会反映在服务器的任何响应中,这些响应包含输入数据作为对 Web 服务器的请求的一部分。由于输入验证不当,浏览器会执行脚本并将其输出返回给客户端。

它是所有 XSS 攻击中最基本的变体,与存储型 XSS 相比,对网站的威胁相对较小。但它仍然是一个威胁,您应该对此保持警惕。

反射型 XSS 攻击通常通过电子邮件和其他形式的社会工程或网络钓鱼活动传播。

存储型跨站点脚本 (XSS)

存储型跨站点脚本

存储型跨站点脚本是一种 XSS 攻击,其中恶意代码可以嵌入或存储在 Web 服务器的数据库中。这是最致命的 XSS 攻击类型,因为它可能会危及整个网站用户群的安全。访问嵌入恶意代码的网页的用户将受到有效负载的攻击。

例如,如果某个热门网站的评论区存在存储型XSS漏洞,攻击者就可以在评论中植入恶意代码。每次浏览者看到该评论时,其浏览器就会执行恶意代码,从而危害其系统和数据。

存储型 XSS 的一个子类别是盲目 XSS 攻击。在此变体中,攻击者将代码注入作为输入,输入数据存储在后端,然后从 Web 应用程序的另一部分反映给受害者。

例如,如果攻击者将恶意代码注入网站的联系信息或反馈表,则当网站管理员检查输入数据时,注入的代码将被执行。

基于 DOM 的跨站点脚本 (XSS)

基于 DOM 的跨站点脚本 基于文档对象模型 (DOM) 的跨站点脚本攻击是一种客户端攻击,其中恶意代码首先被写入浏览器的 DOM,然后由浏览器执行。这是由于网站对输入的清理不当而发生的。

在存在漏洞的 Web 应用程序中,攻击者可以使用脚本访问 DOM 并操纵其内容。与反射型 XSS 一样,基于 DOM 的 XSS 攻击也是通过社交工程学进行。受害者被诱骗点击恶意 URL,从而进入存在漏洞的页面,浏览器会在该页面上执行脚本。

如何检测和预防网站中的 XSS 漏洞

跨站点脚本 (XSS) 漏洞不易检测和修补 — 这是它们至今仍像几十年前一样普遍的重要原因。然而,遵循可靠的开发实践并优先考虑安全性可以保护您的网站免受毁灭性的​​网络攻击和入侵,从而避免您损失数百万美元。

以下是作为开发人员防止 XSS 攻击的一些提示:

  • 作为基本规则,不要相信用户输入。任何以 HTML 呈现的用户输入都存在 XSS 攻击的风险。
  • 实施适当的转义或编码技术来转义输入字段的任何脚本。
  • 净化用户输入以去除任何注入的脚本。
  • 设置cookie 的HttpOnly标志,使得它们无法通过客户端脚本访问。
  • 强制执行内容安全策略 (CSP)以禁止未经身份验证的来源将脚本注入网页。

作为浏览网页的用户,除了警惕您点击的链接和访问的网站之外,您能做的只有尽力保护自己免受迫在眉睫的 XSS 攻击。

最佳 Web 应用程序安全实践

作为在线业务所有者,您应该始终留意防御技术,以保护您的业务免受威胁并修补内部结构中的任何漏洞。作为新兴企业,如果您无法投资升级组织的安全水平,那么采用最佳安全实践将在一定程度上保护您。