You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ZAP OpenAPI扫描报错:/JSON/openapi/view/results/端点请求失败

ZAP OpenAPI扫描报错BAD_VIEW (results)的解决思路

核心问题

ZAP的OpenAPI扩展不存在/JSON/openapi/view/results/这个API端点,不管是扫描过程中自动调用还是手动请求,都会返回BAD_VIEW错误。扫描终止的原因是触发扫描的逻辑错误调用了不存在的端点,而非ZAP自身处理告警时出错。

解决步骤

1. 明确ZAP正确的扫描结果端点

OpenAPI扩展仅负责导入API定义、生成站点结构,扫描执行和结果获取依赖ZAP的核心组件:

  • 主动扫描启动:/JSON/ascan/action/scan/
  • 扫描状态查询:/JSON/ascan/view/status/
  • 所有告警结果:/JSON/alerts/view/alerts/

2. 修正扫描流程

你当前的脚本仅完成了OpenAPI定义导入,正确的完整流程应为:

# 1. 导入OpenAPI定义(原有命令)
BASE_ZAP_URL="http://localhost:8080/JSON"
OPENAPI_URL="${BASE_ZAP_URL}/openapi/action/importFile/"
OPENAPI_FILE_PATH="openapi.json"
curl "${OPENAPI_URL}?apikey=${ZAP_API_KEY}&target=${TARGET_URL}&file=${OPENAPI_FILE_PATH}"

# 2. 启动主动扫描(替换为你的目标URL)
SCAN_ID=$(curl -s "http://localhost:8080/JSON/ascan/action/scan/?apikey=${ZAP_API_KEY}&url=${TARGET_URL}&recurse=true" | jq -r '.scan')

# 3. 轮询扫描状态,直到完成
while true; do
    STATUS=$(curl -s "http://localhost:8080/JSON/ascan/view/status/?apikey=${ZAP_API_KEY}&scanId=${SCAN_ID}" | jq -r '.status')
    if [ "$STATUS" -eq 100 ]; then
        break
    fi
    sleep 5
done

# 4. 获取扫描告警结果
curl "http://localhost:8080/JSON/alerts/view/alerts/?apikey=${ZAP_API_KEY}&baseurl=${TARGET_URL}"

3. 排查扫描触发逻辑

如果是第三方工具或自定义脚本自动调用了/JSON/openapi/view/results/,需要修改该逻辑,替换为上述正确的端点。

4. 版本检查

老旧版本的ZAP或OpenAPI扩展可能存在端点命名差异,建议升级到ZAP最新稳定版,并确保OpenAPI扩展为最新版本。


内容的提问来源于stack exchange,提问作者Alexandre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:16:09