Попытка использовать ZAP (2.4.3) в настройке непрерывной интеграции (CI). Я могу запускать ZAP как демон, запускать все мои тесты Selenium (на Java), используя ZAP в качестве прокси, а затем иметь возможность использовать REST api, вызывая htmlreport
, чтобы получить окончательный отчет пассивного сканера. Это нормально работает, но я хотел бы также использовать активный сканер.
Использование активного сканера в CI несколько раз упоминается в документации ZAP, но мы не нашли ни одного рабочего примера или учебника по этому поводу ... существует ли какое-либо?
Я хотел бы добиться чего-то вроде: Запускать Active Scanner на всех страницах, посещаемых пакетом регрессии Selenium, после того, как он закончит работу.
Попытка взглянуть на REST api ZAP, но в основном это недокументировано:
https://github.com/zaproxy/zaproxy/wiki/ApiGen_Index
В идеале было бы неплохо иметь что-то вроде:
- Запускать активное сканирование асинхронно для всех посещенных URL
- Опрос, чтобы проверить, завершен ли запуск активного сканирования
В REST api кажется, что есть что-то связанное, но:
ascan/scan
требуется вводить URL. Можно позвонитьcore/urls
, чтобы узнать, что посетили тесты Selenium, но как установить правильную аутентификацию (учетные данные для ведения журнала)? Что делать, если важен порядок посещения URL-адресов? Что, если страница доступна только с определенными учетными данными?- есть
ascan/scanAsUser
, но неясно, какcontextId
иuserId
могут быть получены из ZAP. Обременительным обходным путем было бы изменить тесты Selenium для записи на диск URL-адресов, которые они посещают, и учетных данных для ведения журнала / пароля, которые они используют, а затем, когда все тесты будут завершены, для чтения с диска такой информации для вызова ZAP. Есть ли способ попроще?