ZAP桌面版可正常扫描但Docker运行主动扫描报url_not_in_context错误
ZAP Docker主动扫描url_not_in_context错误修复方案
核心报错根因
你调用scanAsUser接口时传入的起始扫描URL为http://dev.xyz.com,但你配置的上下文包含规则仅匹配http://dev.xyz.com/customer.*路径,起始URL不在上下文范围内,因此触发url_not_in_context错误。
需修正的配置项
- 修正上下文正则规则
两种方案二选一即可:- 扩大包含规则范围:将
<incregexes>配置改为http://dev.xyz.com.*,覆盖根域名下所有路径 - 保持原包含规则的前提下,在扫描参数中指定起始扫描路径为
http://dev.xyz.com/customer,确保和包含规则匹配
- 扩大包含规则范围:将
- 修正排除规则正则错误
原排除规则http://dev.xyz.com/customer/v3*不符合正则语法,*需要匹配前导字符,修改为http://dev.xyz.com/customer/v3.*才能正确拦截v3版本下所有接口 - 补充OpenAPI目标域名参数
在zap-api-scan.py参数中添加-O http://dev.xyz.com,确保从OpenAPI文件导入的所有接口都拼接正确的服务域名,避免导入路径和上下文规则不匹配
常见疑问解答
- 开头的
Created user preferences directory类INFO日志是正常现象,属于ZAP首次启动初始化配置目录的默认输出,无故障 - 无需手动配置apiKey:官方
zap-api-scan.py封装脚本默认会自动禁用API密钥校验,日志中apikey=为空属于正常情况,不会导致扫描失败
修复后Docker命令示例
docker run -v D:/dev/cloud/zap/scripts:/zap/wrk/:rw -t owasp/zap2docker-stable zap-api-scan.py \ -d \ -t customer-api-docs.json \ -f openapi \ -O http://dev.xyz.com \ -r /zap/wrk/testreport.html \ -n customer-service.context.xml \ -U bob@xyz.com \ --hook=load-script.py \ -z "-addoninstall jython"
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

