最后,我设法通过 e2e 和 ZAP (使用Docker)实现了自己的目标。
因此,我可以从 http://localhost:8091/OTHER/core/other/htmlreport 或本地PC的终端(使用curl -X GET)查看结果
环境:
目前,我正在考虑将yap文件中的ZAP用作服务。 这意味着,我还必须更新package.json文件和dockerfile,以便从 Cypress 容器转移此处的流量并运行ZAP。
gitlab-ci.yml的示例:
services:
- name: owasp/zap2docker-stable:latest
alias: zap
ports:
- "8092:8092"
entrypoint: ["zap.sh", "-daemon", "-port", "8092", "-host", "0.0.0.0", "-config", "api.disablekey=true", "-config", "api.addrs.addr.name=.*", "-config", "api.addrs.addr.regex=true"]
问题是:
1)在这种环境下如何从守护程序获取结果?因为带有CURL的“终端”不太适合CI / CD
2)主要问题是如何获得结果。在本地使用终端不是一个非常“自动化”的解决方案,我希望有机会保存报告文件(html或json)。 我尝试了“基线扫描”,但是针对执行测试的IP地址存在很大问题。 还有其他可能的解决方案吗?甚至可以借助Daemon来解决此问题?
答案 0 :(得分:1)
docs中提到的方法对我有效:
将ZAP作为守护程序运行,监听"0.0.0.0"
:
docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0
找出容器ID:
docker ps
找出分配给它的地址:
docker inspect <CONTAINER ID> | grep IPAddress
然后,您应该能够将浏览器指向指定的主机/端口并访问ZAP API,例如http://172.17.0.8:8090/
然后,我使用以下URL来查看报告并使用htmlpublisher插件以jenkins发布。您也可以使用curl / wget下载它:
http://172.17.0.8:8090/OTHER/core/other/htmlreport/?