CodeQL 文档

用自身替换子字符串

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

点击查看 CodeQL 存储库中的查询

用自身替换子字符串没有效果,通常表示错误,例如拼写错误的反斜杠转义。

建议

检查字符串替换,查找并更正任何拼写错误。

示例

以下代码片段尝试通过将所有 " 实例替换为 \" 来对 raw 中的所有双引号进行反斜杠转义

var escaped = raw.replace(/"/g, '\"');

但是,替换字符串 '\"' 实际上与 '"' 相同,其中 \" 被解释为身份转义,因此替换不会执行任何操作。相反,替换字符串应为 '\\"'

var escaped = raw.replace(/"/g, '\\"');

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私