首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式的SonarQube安全热点

使用正则表达式的SonarQube安全热点
EN

Stack Overflow用户
提问于 2020-06-28 10:43:44
回答 1查看 2.2K关注 0票数 1

我在我的项目中使用SonarQube,我有SonarQube的安全热点

代码语言:javascript
复制
       return mediaType != null 
             && (MediaType.APPLICATION_JSON.isCompatibleWith(mediaType)
             || mediaType.getSubtype().matches("^.*\\+json[;]?\\s*$"));
   }

这是来自SonarQube的消息,

使用正则表达式是安全敏感的。它在过去导致了以下弱点:

CVE-2017-16021

CVE-2018-13863

根据输入字符串计算正则表达式可能是一项极其密集的CPU任务。巧尽心思构建的正则表达式(如(a+)+s )将花费几秒钟时间计算输入字符串aaaaaaaaaaaaaaaaaaaaaaaaaaaaabs。问题是,在输入中每增加一个字符,计算正则表达式所需的时间就会加倍。但是,等效的正则表达式a+s (不进行分组)是以毫秒为单位有效计算的,并且与输入大小成线性关系。

评估这些正则表达式将为正则表达式拒绝服务(ReDoS)攻击打开大门。在web应用程序的上下文中,攻击者可以迫使web服务器将其所有资源用于评估正则表达式,从而使真正的用户无法访问该服务。

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

示例:(a+)*

例外情况

对String.split(regex)和String.split(regex,极限)的调用将不会引发异常,尽管它们使用了正则表达式。这些方法大部分时间用于拆分简单的正则表达式,这些正则表达式不会产生任何漏洞。

为什么?,我该怎么解决呢?

EN

回答 1

Stack Overflow用户

发布于 2020-12-15 22:50:08

对不起,有点晚了,但这会有帮助的:

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62621417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档