极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。

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

Issue

欢迎在 Gtihub 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: 11/27/2021, 6:11:48 PM