2
我目前正在使用REST-API(使用Groovy作爲一種語言)與ZAP進行交互。如何檢查ZAP報告/警報是否在掃描後生成?
我想要實現的是在掃描完成後開始掃描並檢索結果。
我目前正在查看掃描狀態,並假設我可以在掃描狀態爲100
時檢索結果,表明掃描已完成。但這不起作用,我必須持續查詢/JSON/core/view/alerts/
,直到檢索到實際結果。
這基本上是我的代碼:
String zapUrl = ${zap.getContainerIpAddress()}:8090"
def scanResponse = slurper.parse(new URL("$zapUrl/JSON/spider/action/scan/?url=http://featuretron:8080"))
String scanId = scanResponse.scan
def scanStatus = slurper.parse(new URL("$zapUrl/JSON/spider/view/status/?scanId=$scanId"))
while (scanStatus.status != "100") {
sleep(500)
scanStatus = slurper.parse(new URL("$zapUrl/JSON/spider/view/status/?scanId=$scanId"))
}
def alerts = slurper.parse(new URL("$zapUrl/JSON/core/view/alerts/"))
while (alerts.alerts.isEmpty()) {
sleep(500)
alerts = slurper.parse(new URL("$zapUrl/JSON/core/view/alerts/"))
}
我的問題是,如果存在,它指示的結果已經產生了更穩定的方式。它也似乎,彷彿Java的API的官方例子等待,以及:
被動掃描只是爲了嘗試。 Python示例非常有用,並且正在等待'records_to_scan'完美工作,thx! –