用途:对 API 端点执行模糊测试,发现崩溃、未处理异常、安全漏洞和边界情况失败。支持 RESTler(有状态 REST API 模糊测试)、Schemathesis(基于 OpenAPI 的属性测试)、fast-check 自定义模糊测试框架以及 OWASP ZAP 主动扫描。
前提条件:需有 API 规范(OpenAPI/Swagger、GraphQL SDL 或 Protobuf);目标 API 运行在测试环境(切勿对生产环境模糊测试);已安装模糊测试工具;受保护端点需认证凭据;目标服务器启用错误日志以捕获崩溃和堆栈跟踪。
主要能力:解析 API 规范识别端点、方法与输入模式;配置基于模式、基于变异或基于字典的模糊策略;按参数类型定义输入类别(字符串、数字、数组、对象、日期);执行模糊测试活动;分析发现(5xx 响应、崩溃/挂起、资源耗尽、信息泄露);为每个发现创建最小复现;为确认的缺陷编写回归测试。
使用方式:运行 Schemathesis 示例:schemathesis run http://localhost:3000/openapi.json --stateful=links;或运行 RESTler:restler-fuzzer fuzz --grammar_file grammar.py;或用 fast-check/Hypothesis 编写自定义模糊测试。建议初始运行设置 30-60 分钟时间预算。
输出:按严重程度排序的模糊测试活动报告、每个发现的最小复现(curl 命令或测试用例)、分类发现(崩溃、未处理错误、安全问题、验证缺口)、每个确认缺陷一个测试的回归测试文件、覆盖指标。
限制与错误处理:规范无效时用 swagger-cli validate 校验;401 需通过 --set-header "Authorization: Bearer TOKEN" 提供认证;服务器崩溃需用进程管理器重启并启用崩溃转储;500 误报需过滤已知错误模式;生成不现实输入时可添加 x-examples 或使用有状态模糊测试。切勿对生产环境执行模糊测试。