拒绝服务:正则表达式(输入验证和表示,数据流)

时间:2018-05-23 07:20:00

标签: java server-side-attacks

我正在使用HP Fortify工具来检测我的项目的漏洞,并且它使一些代码容易受到DOS攻击。

while reading some regular expression through some '.properties' and then trying to create a pattern by Pattern.compile(regex);

  

不受信任的数据将传递给应用程序并用作正则表达式。这可能导致线程过度消耗CPU资源。

查询: 现在为解决方案,

  • 如果我要在java文件本身中对正则表达式进行硬编码,那么它将不再是动态的。
  • 我不确定是否应该对读取的属性进行验证

有人可以建议可以使用什么样的DOS验证?

1 个答案:

答案 0 :(得分:0)

它提到了OWASP指南 - 你可以尝试一些控制/检查。

  

正则表达式拒绝服务(ReDoS)是一种拒绝服务攻击,它利用了大多数正则表达式实现可能达到导致它们工作非常缓慢(与输入大小呈指数级相关)的极端情况的事实。然后,攻击者可以使用正则表达式导致程序进入这些极端情况,然后挂起很长时间。

https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS