繼續對Fortify的漏洞進行總結,本篇主要針對 Denial of Service: Regular Expression 漏洞進行總結,如下:
1、Denial of Service: Regular Expression
1.1、產生原因:
實施正則表達式評估程序及相關方法時存在漏洞,該漏洞會導致評估線程在處理嵌套和重復的正則表達式組的重復和交替重疊時掛起。此缺陷可被攻擊者用於執行拒絕服務 (DoS) 攻擊。
示例:
(e+)+
([a-zA-Z]+)*
(e|ee)+
已知的正則表達式實現方法均無法避免這種攻擊。所有平台和語言都容易受到這種攻擊。
1.2、修復方案:
請不要將不可信賴的數據用作正則表達式。
實際修復方案:
在有正則表達式的地方調用下面提供的公共表達式過濾方法。
提供的公共的表達式過濾方法。(根據實際業務需求選擇過濾的符號)
1.3、預防該漏洞的開發規范:
1、對有使用正則表達式的地方應該進行公共過濾方法的調用。