首页 > 解决方案 > 拒绝服务:正则表达式(输入验证和表示、数据流)

问题描述

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

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

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

查询: 现在为解决方案,

谁能建议可以使用哪种针对 DOS 的验证?

标签: javaserver-side-attacks

解决方案


它在 OWASP 指南中提到 - 您可以尝试一些控制/检查。

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

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


推荐阅读