SuperAPI AI 工具集

dom-clobbering-anti-pattern

安全与审计

查看项目

更新于 10-15 22:16

技能介绍

用途:本技能是一份针对 DOM Clobbering 漏洞的安全反模式参考,属于 CWE-79(跨站脚本)变体,严重级别为中等。适用于生成或审查通过 id 访问 DOM 元素、依赖全局变量的代码时使用。

主要能力:解释浏览器会依据 HTML 的 id 和 name 属性自动创建全局变量,攻击者注入 HTML 后可覆盖应用依赖的全局对象,使代码收到 DOM 元素引用而非预期对象,从而绕过权限判断、提交数据到攻击者站点,并绕过允许 id、name 的 HTML 净化器。文档按 BAD/GOOD 对照给出 JavaScript、React、TypeScript 示例,并列出检测模式(如 window.config、document.userInfo、隐式全局、未做类型校验的 getElementById)、Grep 搜索模式、净化器审查点(DOMPurify、sanitize-html、HTML Purifier)、手工与自动化测试方法、测试用例示例,以及分步修复流程。

使用方式:审查代码时搜索全局变量访问与隐式全局;用命名空间或模块作用域替代全局;对 DOM 取回的元素做 instanceof 类型校验;对关键对象使用 Object.freeze();为元素 ID 加前缀;配合 TypeScript 严格模式与 ESLint 插件进行静态检查。

适用场景:涉及基于全局变量做安全判断、动态注入 HTML、表单提交与权限控制的前端代码审查与开发。

限制:本文未提供具体安装命令、工具版本、价格或平台信息;所列工具与参考资料仅为原文提及,效果未经验证。防护必须在 JavaScript 代码层实现,仅依赖净化器不足以防御。