我正在尝试将zap任务自动化到我的构建过程中。这是我的工作:
这是我的ant build.xml的目标:
<SpiderURL zapAddress="${zapaddr}" zapPort="${zapport}" url="${targetHost}" debug="true"/>
<sleep seconds="5"/>
<ActiveScanSite zapAddress="${zapaddr}" zapPort="${zapport}" url="${targetHost}" debug="true"/>
<sleep seconds="5"/>
<tstamp>
<format property="timestamp" pattern="MM-dd-yyyy HH-mm-ss"/>
</tstamp>
<SaveZAPSession zapAddress="${zapaddr}" zapPort="${zapport}" name="${user.dir}/test ${timestamp}" debug="true"/>
<record name="Report.txt" action="start" append="true" />
<alertCheckTask zapAddress="${zapaddr}" zapPort="${zapport}" debug="false">
<ignoreAlert risk="Low" />
<ignoreAlert risk="Medium" />
<requirealert alert="Cross Site Scripting (Reflected)" />
</alertCheckTask>
<record name="Report.txt" action="stop" />
问题是:主动扫描未完成,并且被下一个任务中断(保存zap会话),这意味着报告的警报也未覆盖所有活动扫描结果。
答案 0 :(得分:0)
在执行任何其他操作之前先保存会话。 ZAP会话是一个数据库,一旦它被保存(或者更确切地说是“现在在UI中引用的”),那么任何更改也会自动保存。如果稍后保存/持久化ZAP会话,那么实际上只是将临时数据库复制到新的一次,这是非常低效的。这就是为什么当您打开ZAP UI时我们会提示您保持会话。
说了这么多,我实际上建议直接使用ZAP Java客户端库,因为它提供了对ZAP的更多控制。 Ant任务非常有限。我们真的一直在更新它们,部分原因是因为我们不知道是否有人使用它们!如果您仍打算使用它们,请告诉我 - 我怀疑它们可能需要进行一些调整:)