确保正则表达式高效且安全

问题描述 投票:0回答:1

我精心制作了两个正则表达式,可以成功解析我想要解析的字符串。但是,当运行包含针对Sonar Cloud的正则表达式的代码(质量和安全性检查)时,我会收到有关性能和安全性的警告。

这是我编写的正则表达式(请注意·和-字符:]

// yearToYearWithIrrWAndDotRegex parses: · 1998 - 2001, · 2001 - Present
const yearToYearWithIrrWAndDotRegex = /·.*?(19|20)\d{2}.*?-.*?((19|20)\d{2}|Present)?/g;

// yearToYearRegex parses: 1998 - 2001, 2001 - Present
const yearToYearRegex = /(19|20)\d{2}.*?-.*?((19|20)\d{2}|Present)/g;

声纳云警告:

根据输入字符串评估正则表达式可能会非常耗费CPU资源。特制的正则表达式(如(a +)+ s)将花费几秒钟来评估输入字符串aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabs。问题在于,每增加一个字符添加到输入中,评估正则表达式所需的时间就会加倍。但是,等效的正则表达式a + s(无分组)可以在毫秒内有效评估,并随输入大小线性缩放。]

TLDR:有什么方法可以使我的RegEx更好?

我精心制作了两个正则表达式,可以成功解析我想要解析的字符串。但是,在运行包含针对Sonar Cloud的正则表达式的代码时(质量和安全性...

javascript regex date security sonarcloud
1个回答
0
投票

这看起来像是一般性的安全警告-扫描程序可能会看到您正在使用Regex,并在其报告中删除了标准文本Blob。这种事情在动态或静态扫描仪中都是很标准的,在许多情况下,他们无法确定所执行的操作是否容易受到攻击,因此在谨慎方面会出错。

© www.soinside.com 2019 - 2024. All rights reserved.