Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

什么是跨站脚本 (XSS)?

跨站脚本 (XSS) 是一种在 Web 应用程序中注入恶意代码的攻击类型,在 OWASP 2017 年 10 大漏洞中名列前茅 。

例如,攻击者利用访问者信任的网站上的给定漏洞安装脚本,该脚本将执行恶意操作,例如复制 cookie、令牌或窃取用户 Web 浏览器中缓存的访问数据。

通常,攻击是由于未能验证用户输入数据和 Web 服务器响应而发生的。 用户几乎无法识别浏览器中的数据输入与目标服务器的响应之间的通信故障。

XSS 的类型

脚本注入攻击分为三种:

  • 持久型:攻击者注入的脚本永久托管在目标服务器上。 用户只需浏览受感染的网站即可触发加载; 因此,任何用户都可以执行恶意代码而无需任何特定操作。 这是一种非常危险的攻击类型,因为代码可以托管在多个目的地,例如评论字段、数据库等。
  • 反射型 :在这种情况下,脚本不会托管在目标服务器上,因此需要将其传递给每个受害者。 这可以通过各种形式的社会工程来实现,例如错误消息或搜索结果。 一种常见的方法是通过网络钓鱼方案提供的链接。 通过触发服务器,通过链接,脚本将在浏览器中反映并执行。 这是最常用的技术。
  • 基于 DOM :第三种 XSS 攻击利用文档对象模型 (DOM),它是定义 HTML 和 XML 在浏览器中显示的接口。 该脚本能够直接在浏览器中更改执行这些类型扩展的应用程序的属性,因此无需与服务器交互来执行攻击。 在这种情况下,失败是在浏览器中验证 HTML 或 XML 代码。

跨站请求伪造 (CSRF)

一种类似于 XSS 的攻击方法是 CSRF。 核心区别在于CSFR攻击需要经过身份验证的会话才能执行其目标。 因此,攻击者仅利用用户登录到 Web 服务的会话。 另一个重要区别是 CSFR 目标,它通常与状态更改请求有关,因为攻击者继承了经过身份验证的会话的权限——例如​​,可用于修改网络防火墙设置。

如何防止 XSS 攻击

XSS 攻击发生在以下情况:

  1. Web 应用程序允许数据输入,但不能有效地验证数据;
  2. 数据输入是通过活动内容(例如 HTML、JavaScript、ActiveX、Flash、Silverlight 等)完成的。

因此,将数据输入视为不可靠是防止此类操作的基本规则。 例如,在向 HTML 上下文输入数据的情况下,应避免使用活动内容。

遵循这些规则的主动防御工具将成为抵御 XSS 攻击的强大盟友。 例如, 入侵防御系统 (IPS) 对于通过 Web 应用程序从白名单中分类用户输入至关重要。 不符合规则的条目应被拒绝。 换句话说,IPS 的黄金法则是拒绝所有条目,然后仅作为例外允许。

考虑到 XSS 攻击利用 Web 应用程序中的漏洞,采用 漏洞管理产品 来扫描此类应用程序可能是相关的,因为它允许以经过身份验证的方式获取有关其用户使用的应用程序安全状态的重复信息或未通过身份验证。

可以在 OWASP 十大 XSS 预防备忘单

声明:文章来源与网络。仅用于学习,请勿使用非法用途