最初我尝试通过 ZAP UI 验证 API。我有一个文件夹结构
上下文,wrk->script->authentication->bearer-token.js,wrk->script->httpsender->header-set-bearer-token.js,wrk->script->zap_hooks.py。
在进行身份验证时,我选择了 ScriptBasedAuthentication 并加载了 Bearer-token.js 中提供的脚本、提供的令牌提供者 URL、API 密钥和 grantType。导入 Swagger.json 并运行 Active Scan。
ZAP UI 一切正常。
在尝试使用 ZAP API Scan docker 映像时,我收到警报
服务器返回响应码 401。
这可能表明应用程序无法正确处理意外输入。
由“HTTP 响应代码错误警报”脚本引发
正在扫描所有 api,但未对其进行身份验证。我正在运行的命令是
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t test.json -f openapi -r api-scan-report.html -z “ -config replacer.full_list(0).description=auth1 -config replacer.full_list(0).enabled=true -config replacer.full_list(0).matchtype=REQ_HEADER -config replacer.full_list(0).matchstr=授权 -config replacer.full_list(0).regex=false -config 'replacer.full_list(0).replacement=Bearer XXXXXXXXXXXXXXXXXXXXXX'”</h2>
“Bearer TokenXXXXX”之间有空格,所以我参考了这个https://github.com/zaproxy/zaproxy/issues/4332#issuecomment-367326344
但这对我不起作用。Bearer 令牌再次仅在 5 分钟内有效,然后过期。
如果我提供--hook=zap_hooks.py,它会说在/zap/zap_hooks.py 找不到自定义钩子文件 我从一个星期开始尝试这个,但没有运气。请帮助我如何验证我的 API 可以摆脱 401(未经授权)
请帮我解决一下这个。提前致谢。