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