XSS (Cross-Site Scripting) 是利用 Web 应用程序的漏洞,向页面注入恶意 JavaScript 代码,从而窃取用户的 Cookie、会话信息、个人数据等的攻击手法。在 OWASP Top 10 的 2025 年版中,XSS 被归入 A05 Injection(注入)。
OWASP 的 XSS 解说(截至 2026 年 10 月)指出,XSS 一般分为反射型和存储型两类,另外还有一种不太为人所知的 DOM 型。具体来说,反射型 XSS,即 URL 参数中包含的脚本被原样显示在页面上;存储型 XSS,即保存在数据库中的脚本被显示给其他用户;DOM 型 XSS,即在客户端 JavaScript 操作 DOM 时发生。
OWASP 的 XSS 防御速查表(截至 2026 年 10 月)指出,没有任何单一手段能够解决 XSS,需要正确组合多种防御手段。其中被认为效果最好的是框架的安全保护功能、输出编码 (例如把 < 转为 <,把 > 转为 >) 和 HTML 净化这三种。HttpOnly 等 Cookie 属性可以限制 XSS 造成的影响,但不能防止 XSS;CSP 响应头则被定位为附加的一层,而不是主要的防御手段。
在短链接服务中,把用户输入的 URL 显示在页面上时存在 XSS 风险。特别是一旦允许 `javascript:` 这种协议的 URL,用户点击链接时就会执行任意 JavaScript。OWASP 的速查表也建议,把不可信的 URL 用作链接目标时,只允许协议为 `http://` 和 `https://` 的 URL。