研究:TRE Python 綁定,ReDoS 韌性示範

此專案展示了強韌的正規表達式效能,提供了一個簡潔的 Python ctypes 綁定,連結至 TRE 正規表達式函式庫。它特別強調 TRE 對於正規表達式阻斷服務(ReDoS)攻擊的免疫力,這類攻擊會癱瘓 Python 內建的 re 模組。

關鍵效能測試顯示,TRE 即使處理龐大輸入(一千萬字元)上的惡名昭彰「惡意」模式,也比 re 處理微小輸入時快上許多,並且能以線性而非指數方式隨著輸入大小擴展。

如果連 antirez 都認為它足以加入 Redis,那麼我認為 Ville Laurikari 的 TRE 正規表達式引擎值得更深入地探討。

我請 Claude Code 建立了一個實驗性的 Python 綁定(它使用了 ctypes),並嘗試對該函式庫進行一些惡意正規表達式攻擊。TRE 在處理這些攻擊方面,比 Python 的標準函式庫實作表現得更好,這主要歸功於它不支援回溯(backtracking)的特性。