正则表达式在 SonarQube 报告中被标记为安全热点

Posted

技术标签:

【中文标题】正则表达式在 SonarQube 报告中被标记为安全热点【英文标题】:Regular Expressions are marked as Security Hotspot on SonarQube report 【发布时间】:2022-01-14 21:34:36 【问题描述】:

为什么在 SonarQube 报告中将以下表达式 "Test--[A-Z]3_[0-9]1,2[MYD]1" 视为安全热点?

我们应该将此标记为“解决为已审核”吗?还是我们有其他解决方法?

【问题讨论】:

根据 (rules.sonarsource.com/javascript/type/Security%20Hotspot/…),警告是因为 RegEx 评估引擎可能存在漏洞。如果可能,您可以使用 Google Re2。 【参考方案1】:

您可以将其标记为已审核且可以安全使用。

Test--[A-Z]3_[0-9]1,2[MYD]1 模式等于Test--[A-Z][A-Z][A-Z]_[0-9][0-9]?[MYD]

要使正则表达式成为邪恶的正则表达式,必须有相当大的回溯可能性,只有**?++?x,/x, 才有可能?类似于模式内非最终位置的量词。

您的示例是一个模式示例,其中只有一位或两位数的模式可以回溯到,但只有两种可能的方式来匹配该模式,这没有问题并且不会造成任何威胁。

【讨论】:

非常感谢,让我标记为已审核并探索表达式 Test--[AZ][AZ][AZ]_[0-9][0-9]?[MYD]

以上是关于正则表达式在 SonarQube 报告中被标记为安全热点的主要内容,如果未能解决你的问题,请参考以下文章

Sonarqube 自定义规则 - 字符串文字不应重复,在记录器的上下文中被忽略

将cookie设置为安全时Spring Boot无法登录

有没有办法仅使用 XPATH 1.0 将多个相同命名的属性与正则表达式字符串匹配?

我如何在 jenkins 上发布 sonarqube 报告?使用 sonarqube portlet

使用正则表达式在多个 HTML 标记之间获取文本 [重复]

NLTK 正则表达式标记器在正则表达式中不能很好地处理小数点