JavaScript中的SonarQube正则表达式漏洞问题

JavaScript中的SonarQube正则表达式漏洞问题,javascript,sonarqube,Javascript,Sonarqube,无论我在JavaScript代码中使用Regex,SonarQube都会显示漏洞问题。在JavaScript中是否有其他正则表达式 错误:确保在此处使用正则表达式是安全的。 示例正则表达式:'(^(?=[A-Za-z0-9\.-]*$)(?=.[A-Za-z0-9]).*$)这不是一个真正的问题,而是一个安全警告 你检查过错误的描述了吗 根据输入字符串计算正则表达式可能是一个非常复杂的问题 非常CPU密集的任务。巧尽心思构建的正则表达式 例如(a+)+s将需要几秒钟来计算输入字符串 aaaaaa

无论我在JavaScript代码中使用Regex,SonarQube都会显示漏洞问题。在JavaScript中是否有其他正则表达式

错误:
确保在此处使用正则表达式是安全的。


示例正则表达式:
'(^(?=[A-Za-z0-9\.-]*$)(?=.[A-Za-z0-9]).*$)
这不是一个真正的问题,而是一个安全警告

你检查过错误的描述了吗

根据输入字符串计算正则表达式可能是一个非常复杂的问题 非常CPU密集的任务。巧尽心思构建的正则表达式 例如(a+)+s将需要几秒钟来计算输入字符串 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabs

问题是,每增加一个字符,就会在 输入时,计算正则表达式所需的时间加倍。但是, 等价正则表达式,a+s(无分组)有效 以毫秒为单位计算,并随输入大小线性缩放

计算这样的正则表达式为正则表达式打开了大门 表达式拒绝服务(重做)攻击。在网络环境中 在应用程序中,攻击者可以强制web服务器花费其所有时间 资源评估正则表达式,从而使服务 真正的用户无法访问

此规则标记硬编码正则表达式的任何执行 具有至少3个字符和至少两个 以下字符:*+{

示例:(a+)*

问问自己,执行的正则表达式是否敏感 用户可以提供一个字符串,该字符串将由该正则表达式进行分析 表达式。•正则表达式引擎性能下降 使用精心编制的输入和正则表达式

如果您对这些问题中的任何一个回答为“是”,您可能会面临风险


要解决此问题,您需要人工检查正则表达式是否存在风险。如果没有,您可以将其标记为假阳性,否则,检查正则表达式可能是强制性的。

您可以将SonarQube错误添加到您的问题中吗?对于正则表达式,我到目前为止只看到了正则表达式的安全热点。主要问题是您需要避免正则表达式允许这样做更新了我的代码