TRE Python绑定 — ReDoS鲁棒性演示

Simon Willison's Blog 工具

摘要

一个极简的Python ctypes绑定到TRE正则表达式库,展示了针对ReDoS攻击的鲁棒性能,处理1000万字符输入上的恶意模式时,速度远超Python的re模块。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/05/08 06:43

# 研究:TRE Python绑定——ReDoS鲁棒性演示 来源:https://simonwillison.net/2026/May/4/tre-python-binding/ 研究TRE Python绑定——ReDoS鲁棒性演示 (https://github.com/simonw/research/tree/main/tre-python-binding#readme) —— 该项目旨在演示正则表达式的健壮性能,提供了一个基于Python `ctypes`的最小化TRE正则库绑定,突出展示了TRE对正则表达式拒绝服务(ReDoS)攻击的免疫能力,而Python内置的`re`模块在面对此类攻击时极易崩溃。关键基准测试表明,即使在巨量输入(1000万个字符)上执行臭名昭著的“邪恶”模式,TRE的处理速度也远快于`re`模块处理极少量输入的速度,并且其性能随输入规模线性增长,而非指数级爆炸。 既然它已经足够好到让 antirez (https://simonwillison.net/2026/May/4/redis-array/) 将其添加到Redis中,我觉得有必要更详细地探索一下 Ville Laurikari 的 TRE (https://github.com/laurikari/tre/) 正则表达式引擎。 我让 Claude Code 构建了一个实验性的Python绑定(使用了 `ctypes`),并针对该库尝试了一些恶意正则表达式攻击。TRE 对这些攻击的处理能力远胜于 Python 标准库实现,这主要得益于它不支持回溯。

相似文章

TREX:一款运行你的代码的AI代码审查工具

Hacker News Top

Greptile 推出 TREX,这是一款能够执行代码并检测运行时错误的 AI 代码审查工具。它超越了静态分析,通过启动并行代理来调查问题并生成截图等产物。