这是我的 bash 脚本中启动 openapi 扫描的请求:
BASE_ZAP_URL="http://localhost:8080/JSON" OPENAPI_URL="${BASE_ZAP_URL}/openapi/action/importFile/" OPENAPI_FILE_PATH="openapi.json" OPENAPI_SCAN_RESPONSE=$(curl "${OPENAPI_URL}?apikey=${ZAP_API_KEY}&target=${TARGET_URL}&file=${OPENAPI_FILE_PATH}")
我的脚本正在运行。我的目标是扫描。我收到了一些关于我的目标的请求。然后几秒钟后。我在 DOCKER 控制台中收到此错误:
“2024-11-21 22:46:15 223693 [ZAP-IO-Server-1-1] 警告 org.zaproxy.zap.extension.api.API - 对 API 端点的错误请求 [/JSON/openapi/view/结果/]来自[172.17.0.1]: 2024-11-21 22:46:15 org.zaproxy.zap.extension.api.ApiException:BAD_VIEW(结果)[...]"
如果我没记错的话,一旦提出第一个问题,zap 就会尝试将其添加到“/JSON/openapi/view/results”(它自己的端点),但找不到它,所以代码停止了本身。
我不确定问题是我的问题(可能是缺少配置),还是 ZAP 的错。
我被这个问题困住了🙃,我找不到任何相关信息。
有人可以帮助我吗?
我检查了问题与curl命令无关。但我收到了第一个扫描请求。然后我尝试使用 -f 参数使请求对失败不敏感,但这没有帮助。
还有: 要求:
curl http://localhost:8080/JSON/openapi/view/results?apikey=${ZAP_API_KEY}
回复:{"code":"bad_view","message":"Bad View"}
要求:
curl -I http://localhost:8080/JSON/openapi/view/results?apikey=${ZAP_API_KEY}
分辨率:
HTTP/1.1 400 Bad Request Pragma: no-cache Cache-Control: no-cache, no-store, must-revalidate Content-Security-Policy: default-src 'none'; script-src 'self'; connect-src 'self'; child-src 'self'; img-src 'self' data:; fontdddata:; font-src 'self' data:; style-src 'self' data:; font-src 'self' data:; style-src 'self' data:; font-src 'self' data:; style-src 'self' data:; font-src 'self' data:; style-src 'self' data:; font-src 'self' data:; style-src 'self' data:; font-src 'self' data:; style-src 'self' Referrer-Policy: no-referrer Access-Control-Allow-Methods: GET,POST,OPTIONS Access-Control-Allow-Headers: ZAP-Header X-Frame-Options: DENY X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Clacks-Overhead: GNU Terry Pratchett Content-Length: 40 Content-Type: application/json; charset=UTF-8
根据您提出的错误,没有这样的端点。 此附加组件的可用端点列于 https://www.zaproxy.org/docs/desktop/addons/openapi-support/#api :
The following operations are added to the API:
ACTION importFile (file, target, contextId, userId)
ACTION importUrl (url, hostOverride, contextId, userId)
Both target and hostOverride support the Target URL format explained earlier.
The definitions will be imported synchronously and any warnings will be returned.