Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 347

基于 DOM 的 XSS

基于 DOM 的 XSS 是什么?

基于 DOM 的 XSS一种 XSS 变体,注入和执行完全发生在浏览器中,因为客户端 JavaScript 将未净化的数据写入危险接收点。


基于 DOM 的 XSS(也称 Type-0)是一种跨站脚本漏洞,其根本原因完全位于客户端代码中。可信源(如 location.hash、document.referrer、window.name、postMessage 或 localStorage)未经净化就传入危险的 DOM sink(如 innerHTML、document.write、eval 或 jQuery.html)。由于服务器从未接触到这些载荷,传统 WAF 和服务器日志难以发现该漏洞。防御措施包括使用安全 API(如 textContent)、在现代浏览器中启用 Trusted Types、部署严格的 CSP,以及使用能追踪从源到 sink 的污染数据流的代码分析工具。

示例

  1. 01

    document.getElementById('out').innerHTML = location.hash.substring(1);

  2. 02

    SPA 路由器使用 window.location 将未净化的 HTML 渲染到模板槽位。

常见问题

基于 DOM 的 XSS 是什么?

一种 XSS 变体,注入和执行完全发生在浏览器中,因为客户端 JavaScript 将未净化的数据写入危险接收点。 它属于网络安全的 攻击与威胁 分类。

基于 DOM 的 XSS 是什么意思?

一种 XSS 变体,注入和执行完全发生在浏览器中,因为客户端 JavaScript 将未净化的数据写入危险接收点。

基于 DOM 的 XSS 是如何工作的?

基于 DOM 的 XSS(也称 Type-0)是一种跨站脚本漏洞,其根本原因完全位于客户端代码中。可信源(如 location.hash、document.referrer、window.name、postMessage 或 localStorage)未经净化就传入危险的 DOM sink(如 innerHTML、document.write、eval 或 jQuery.html)。由于服务器从未接触到这些载荷,传统 WAF 和服务器日志难以发现该漏洞。防御措施包括使用安全 API(如 textContent)、在现代浏览器中启用 Trusted Types、部署严格的 CSP,以及使用能追踪从源到 sink 的污染数据流的代码分析工具。

如何防御 基于 DOM 的 XSS?

针对 基于 DOM 的 XSS 的防御通常结合技术控制与运营实践,详见上方完整定义。

基于 DOM 的 XSS 还有哪些其他名称?

常见的别称包括: Type-0 XSS, 客户端 XSS。

相关术语

参见