Ruby 3.2.0 Preview 1 发布,引入正则表达式超时退出机制
Ruby 3.2.0 Preview 1 已发布。此版本增加了许多新特性,以及优化性能。 基于 WASI 的 WebAssembly 支持 这是基于 WASI 的 WebAssembly 支持的初始移植。此项特性使得 CRuby 二进制文件可在 Web 浏览器、Serverless Edge 环境和其他 WebAssembly/WASI 嵌入器上使用。目前,此移植可在不使用 Thread API 的前提下通过基本和引导测试套件的测试。 正则表达式超时退出机制 此版本引入了正则表达式超时退出机制。 Regexp.timeout = 1.0 /^a*b?a*$/ =~ "a" * 50000 + "x" #=> Regexp::TimeoutError is raised in one second 由于正则表达式匹配会耗费不少时间,当代码试图向不受信任的输入匹配低效的正则表达式时,攻击者可能会利用它进行 DoS 攻击(即正则表达式 DoS,或称作 ReDoS)。 Regexp.timeout根据 Ruby 应用程序的要求进行配置,可以防止或显着降低 DoS 的风险。请注...


