评估正则的性能与安全风险:统计分组、嵌套、分支、量词与贪婪结构,检测可能导致灾难性回溯(ReDoS)的模式并给出改进建议,同时提供性能计时与可中止的回溯压力测试。
某些正则结构(如嵌套量词 (a+)+)在特定输入下会产生指数级回溯,导致服务或页面长时间无响应,这就是 ReDoS。本工具用静态启发式结合计时采样识别这类风险。
复杂度分析给出分组数量、嵌套层级、分支数量、量词数量、贪婪量词与断言数量,并列出高风险结构及原因。
性能测试按设定次数重复匹配并统计耗时;回溯压力测试以递增的输入长度观察耗时是否呈指数增长;测试过程可随时中止。
性能结果受设备、浏览器与负载影响,工具会明确标注测试条件,不将其作为绝对性能结论。
Q:什么是 ReDoS?
ReDoS(正则表达式拒绝服务)指某些正则在特定输入下产生灾难性回溯,消耗大量时间与 CPU,可能导致页面或服务无响应。
Q:检测结果是绝对的吗?
不是。工具采用静态启发式与小规模计时采样,属于风险提示;最终应以真实数据与运行环境为准。
Q:如何降低回溯风险?
避免嵌套量词与重叠分支,收窄字符类,使用锚点限定范围;在支持的环境可用原子组或占有量词。
Q:压力测试会卡死页面吗?
压力测试规模有限且可中止,测试过程中会定期让出主线程;仍建议先用小规模验证。
继续使用本站其它正则工具: