# 什么是安全的正则表达式

Issue

欢迎在 Issue 中交流与讨论: Issue 430 (opens new window)

下边这个正则表达式能把 CPU 跑挂的正则表达式就是一个定时炸弹,回溯次数进入了指数爆炸般的增长。

可以参考文章 浅析 ReDos 原理与实践 (opens new window)

const safe = require('safe-regex')
const re = /(x+x+)+y/

// 能跑死 CPU 的一个正则
re.test('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

// 使用 safe-regex 判断正则是否安全
safe(re)   // false

safe-regex (opens new window) 能够发现哪些不安全的正则表达式。

Last Updated: 1/17/2021, 2:02:56 PM