TRE Python 绑定展示抗 ReDoS 能力

Simon Willison··作者 Simon Willison

关键信息

关键技术差异在于 TRE 是一种不进行回溯的正则引擎,因此比 Python 默认实现更能抵御恶意输入。这个绑定仍然是实验性的,并且是通过 ctypes 创建的,所以应把它看作研究演示,而不是受支持的正式库。

资讯摘要

Simon Willison 发布了一篇题为《TRE Python binding — ReDoS robustness demo》的研究文章。他表示,既然 antirez 都觉得 TRE 足够好并把它加入 Redis,那么进一步了解它就很有必要。为此,他让 Claude Code 用 ctypes 构建了一个面向 TRE 正则表达式引擎的实验性 Python 绑定。随后,他用恶意正则表达式攻击对这个库进行了测试。

结果显示,TRE 处理这些攻击的能力明显优于 Python 标准库中的正则实现。文章指出,这种鲁棒性主要来自 TRE 不支持回溯。整体来看,这更像是一个小型研究演示,而不是重大产品发布,也不是在宣称 TRE 已经可以全面取代 Python 的正则引擎。

资讯正文

研究:TRE Python 绑定——ReDoS 稳健性演示

如果它“足够好到让 antirez 把它加入 Redis”,那我就觉得 Ville Laurikari 的 TRE 正则表达式引擎值得更详细地研究一下。

我让 Claude Code 构建了一个实验性的 Python 绑定(它使用了 <code>ctypes</code>),并尝试对这个库发起一些恶意的正则表达式攻击。TRE 对这些攻击的处理要比 Python 标准库实现好得多,这主要归功于它不支持回溯。

标签:security、python、regular-expressions、c、ctypes

来源与参考

  1. 原始链接
  2. Research: TRE Python binding — ReDoS robustness demo

收录于 2026-05-05