尝试在连续集成(CI)设置中使用ZAP(2.4.3)。我可以将ZAP作为守护进程运行,使用ZAP作为代理运行我的所有Selenium测试(在Java中),然后能够使用REST api调用htmlreport
来获取被动扫描程序的最终报告。这很好用,但我也想使用Active Scanner。
在ZAP的文档中多次提到使用CI中的Active Scanner,但是没有找到任何关于它的工作示例或教程......是否存在?
我希望实现的目标是:在Selenium回归套件访问的所有页面上运行Active Scanner,一旦运行完毕,就会运行。
试着查看ZAP的REST api,但大部分都没有记录:
https://github.com/zaproxy/zaproxy/wiki/ApiGen_Index
理想情况下,有这样的东西会很棒:
在REST api中似乎有相关内容,但是:
ascan/scan
需要一个网址作为输入。可以调用core/urls
来查看Selenium测试访问过的内容,但是如何设置正确的身份验证(日志记录凭据)?如果访问网址的顺序很重要怎么办?如果页面只能使用特定凭据访问该怎么办? ascan/scanAsUser
,但不清楚如何从ZAP中检索contextId
和userId
。一个繁琐的解决方法是修改Selenium测试,在磁盘上写入他们访问的URL以及他们使用的日志/密码凭据,然后,一旦完成所有测试,就从磁盘读取这些信息以调用ZAP。有没有更简单的方法? 答案 0 :(得分:2)
好的,所以这里有很多问题:)
ZAP通常会扫描网址的层次结构,例如应用程序顶级网址https://www.example.com/app下的所有内容。我们假设你知道那将是什么;)
要处理身份验证非常简单,请参阅https://github.com/zaproxy/zaproxy/wiki/FAQformauth
ascan / status调用返回已完成的%
您可以更好地找到ZAP用户组http://groups.google.com/group/zaproxy-users来解决这些问题。 但是,我们确实需要改进API文档:/
干杯,
Simon(ZAP项目负责人)