🧪 正则模糊测试器
📝 输入正则表达式
📋 历史记录
暂无历史记录
正则模糊测试器能做什么?
正则模糊测试器是一款面向开发者的免费在线工具,通过生成随机匹配字符串和边界测试用例来验证正则表达式的正确性和安全性。工具能够自动检测ReDoS(正则表达式拒绝服务)漏洞,帮助开发者编写更安全、更健壮的正则表达式。
核心功能
- 随机匹配生成:根据正则模式自动生成匹配的随机字符串
- ReDoS检测:分析正则中的危险模式,检测潜在的拒绝服务漏洞
- 边界测试:自动生成空字符串、超长字符串、特殊字符等边界用例
- 自定义测试:支持手动输入测试字符串进行验证
- 匹配高亮:在测试结果中高亮显示匹配部分
- 性能计时:测量每个测试字符串的匹配耗时
使用教程
1. 在输入框中输入正则表达式,如 ^(a+)+$
2. 选择正则标志和生成数量
3. 点击"模糊测试"运行完整测试,或单独点击"生成匹配"/"ReDoS检测"
4. 查看结果:匹配统计、ReDoS风险、生成的匹配字符串
5. 可在自定义测试区输入特定字符串进行验证
6. 使用快捷键Ctrl+Enter快速执行测试
应用场景
场景1:安全审计
安全工程师在代码审计中,使用本工具检测用户输入的正则表达式是否存在ReDoS风险,防止恶意用户提交危险正则导致服务瘫痪。
场景2:正则调试
开发者编写复杂正则时,通过模糊测试发现意外匹配或遗漏匹配的情况,确保正则行为符合预期。
场景3:单元测试
测试工程师使用生成的匹配字符串作为单元测试数据,覆盖正则表达式的各种边界情况。
场景4:教学演示
教师在讲解正则表达式安全时,通过本工具直观展示ReDoS攻击原理和危险模式的识别方法。
扩展知识
ReDoS是一种常见的Web安全漏洞,利用正则引擎的回溯特性进行攻击。当正则包含嵌套量词(如(a+)+)或交替分组(如(a|a)+)时,某些输入会导致指数级回溯。防御方法包括:避免嵌套量词、使用原子分组、设置匹配超时、使用非回溯引擎等。本工具通过静态分析和动态测试双重检测,帮助开发者识别和修复ReDoS风险。
❓ 什么是正则模糊测试?
正则模糊测试是通过生成随机或边界输入字符串来测试正则表达式行为的技术,帮助发现意外匹配、遗漏匹配和ReDoS安全漏洞。
❓ 什么是ReDoS漏洞?
ReDoS(Regular Expression Denial of Service)是利用正则表达式的回溯特性,构造特殊输入使匹配时间指数级增长,导致服务器CPU耗尽的攻击方式。
❓ 如何检测ReDoS?
工具通过分析正则中的嵌套量词、交替分组等危险模式,并使用超时机制实际测试匹配耗时,双重检测ReDoS风险。
❓ 生成的匹配字符串有什么用?
生成的匹配字符串可用于验证正则是否正确匹配预期格式,测试边界情况,以及作为单元测试的测试数据。
❓ 支持哪些正则标志?
支持JavaScript正则的所有标志:g(全局)、i(忽略大小写)、m(多行)、s(dotAll)、u(Unicode)、y(粘性)。
❓ 数据会上传到服务器吗?
不会。所有测试逻辑均在浏览器本地执行,正则表达式和测试数据不会离开您的设备。
❓ 可以批量测试多个正则吗?
支持。可以在输入区粘贴多个正则表达式(每行一个),工具会逐个测试并汇总结果。