小编rah*_*hul的帖子

SonarQube 显示正则表达式拒绝服务 (ReDoS)

我在 JavaScript 中使用正则表达式验证日期,但是当我运行 SonarQube 进行代码分析时。它将正则表达式显示为一个安全漏洞。

示例1:

以下是正则表达式模式(链接到正则表达式来源/sf/answers/1085341421/):

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Run Code Online (Sandbox Code Playgroud)

示例2:

对于浮动值,我使用了下面的正则表达式

^\d{1,5}(?:\.\d{1,5})?$
Run Code Online (Sandbox Code Playgroud)

SonarQube 抛出相同的安全错误,我尝试了各种不同的正则表达式模式,但它不起作用。

javascript regex sonarqube

23
推荐指数
1
解决办法
4万
查看次数

标签 统计

javascript ×1

regex ×1

sonarqube ×1