Hasty Briefsbeta

双语

Show HN: Regolith – Regex library that prevents ReDoS CVEs in TypeScript

9 months ago
  • #ReDoS
  • #Rust
  • #TypeScript
  • Regolith 是一个服务端 TypeScript/JavaScript 库,通过结合 Rust 和线性正则表达式技术,从根本上免疫正则表达式拒绝服务(ReDoS)攻击。
  • 该库旨在成为 TypeScript/JavaScript 默认 RegExp 的无缝替代方案,几乎无需修改现有代码即可接入。
  • ReDoS 攻击通过利用低效的正则模式,使服务因计算资源耗尽而不可用。
  • 与原生 RegExp 存在指数级最坏时间复杂度不同,Regolith 严格保证线性时间执行。
  • 借鉴 Rust 正则库的设计理念,Regolith 主动舍弃反向引用、环视等特性以维持线性时间复杂度。
  • 项目目前处于早期开发阶段,正积极寻求社区共建支持。
  • 由于服务器常成为 ReDoS 攻击目标,Regolith 当前主要聚焦服务端应用场景。
  • 可通过 npm 安装使用,执行命令 `npm i @regolithjs/regolith` 即可完成部署。
  • 支持模式匹配、替换、搜索、字符串分割等线性时间复杂度操作,并提供完整示例。
  • 项目已配备 93 项全面测试,支持多平台运行环境。
  • 未来规划包括通过 WebAssembly(WASM)技术向客户端应用领域扩展。
  • 库名 Regolith 源自行星表层的风化层概念,喻指其作为安全基石的定位。