SuperAPI AI 工具集

xpath-injection-anti-pattern

安全与审计

查看项目

更新于 10-15 22:16

技能介绍

用途:该技能针对 XPath 注入漏洞(CWE-643),属于高危安全问题,用于在生成或审查查询 XML 文档、构造 XPath 表达式的代码时识别并规避此类缺陷。

风险表现:当应用程序把用户输入不安全地直接嵌入 XPath 查询、未做转义或参数化时,攻击者可注入特殊字符改变查询逻辑,可能导致认证绕过、未授权访问敏感 XML 数据,或泄露 XML 文档结构信息。这与 SQL 注入类似,只是目标为 XPath。

反模式:通过字符串拼接、插值(如 f-string)或格式化方法,把用户可控输入直接拼入 XPath 字符串。例如把用户名直接写入 name 条件中,攻击者输入 admin' or '1'='1 即可让条件恒真,从而绕过认证。

安全做法:优先使用参数化 XPath 查询,将查询结构与用户数据分离,由库自动处理转义(如把变量以 $username 形式绑定并单独传入)。若库不支持参数化,则必须对输入正确转义,需注意同时含单双引号的字符串要用 concat() 特殊处理。此外可用严格白名单校验输入,并尽量避免动态构造 XPath 表达式,改用静态表达式或 DOM 遍历。

检测方法:查找用字符串拼接、插值或格式化构造 XPath 的代码;定位 xpath()、evaluate()、selectNodes() 等 XPath 求值调用;确认用户输入是否被正确转义;用 XPath 元字符(如 '、"、and、or、comment())测试是否改变查询行为。

适用与限制:适用于涉及 XML 查询的代码生成与安全审查场景。资料未提供具体安装方式、平台支持或收费信息。