用自身替换子字符串¶
ID: js/identity-replacement
Kind: problem
Security severity: 5.0
Severity: warning
Precision: very-high
Tags:
- correctness
- security
- external/cwe/cwe-116
Query suites:
- javascript-code-scanning.qls
- javascript-security-extended.qls
- javascript-security-and-quality.qls
用自身替换子字符串没有效果,通常表示错误,例如拼写错误的反斜杠转义。
建议¶
检查字符串替换,查找并更正任何拼写错误。
示例¶
以下代码片段尝试通过将所有 "
实例替换为 \"
来对 raw
中的所有双引号进行反斜杠转义
var escaped = raw.replace(/"/g, '\"');
但是,替换字符串 '\"'
实际上与 '"'
相同,其中 \"
被解释为身份转义,因此替换不会执行任何操作。相反,替换字符串应为 '\\"'
var escaped = raw.replace(/"/g, '\\"');