Updated Jul 14, 2026

Scanners

Spider then actively scan a live web app with ZAP

Full OWASP ZAP active scan against a target URL.

Agent

overview

What zap-full-scan does

zap-full-scan drives OWASP ZAP end to end against a web application: it crawls with the spider, then runs active scan rules that send crafted requests. A baseline pass only watches traffic passively. The full scan is what surfaces injection, cross-site scripting, and broken access control that passive observation never triggers.

Flags set depth and shape the report. -t takes the target URL with its protocol. -j adds the Ajax spider for JavaScript-rendered routes. -m caps how long the spider runs. Point -n at a context file and -U at a username to scan behind a login. Mark noisy rules as INFO, IGNORE, or FAIL through a -c config file, and trim the report with -l and -s.

Trickest runs it as a managed Scanners node that reads a target URL and writes FILE plus FOLDER results. Wire it after discovery and probing so it scans hosts you already confirmed are live, then route findings into the same triage path as the rest of your security output. For an API contract use zap-api-scan; for multi-job plans use zap-automation-framework.

source github.com/zaproxy/zaproxy

use cases

Where zap-full-scan fits

Run a full active scan of a web app

Point ZAP at a live URL to spider the site and run its active rules, surfacing injection, misconfiguration, and access-control issues a passive baseline would miss.

Reach JavaScript-rendered content

Enable the Ajax spider with -j so ZAP crawls pages and routes that load through JavaScript, widening coverage on single-page apps before the active scan runs.

Scan behind a login

Supply a context file with -n and a username with -U so ZAP authenticates and tests pages that are only reachable to a logged-in user.

Tune report noise for CI gates

Use -l and -s with a -c config file to keep only the findings that matter and mark known warnings as INFO or IGNORE so a scheduled scan does not fail on accepted risk.

reference

zap-full-scan inputs and flags

13 inputs
NameTypeFlagDescription
targetSTRING-tTarget URL including the protocol, e.g. https://www.example.com.
ajaxBOOLEAN-jUse the Ajax spider in addition to the traditional one.
minsSTRING-mNumber of minutes to spider for (defaults to no limit).
userSTRING-UUsername for authenticated scans, defined in the context file.
context-fileFILE-nContext file loaded before scanning the target.
alphaBOOLEAN-aInclude the alpha active and passive scan rules as well.
levelSTRING-lMinimum level to show: PASS, IGNORE, INFO, WARN, or FAIL.
config_fileFILE-cConfig file to mark warnings as INFO, IGNORE, or FAIL.

Showing key inputs. zap-full-scan exposes 13 inputs in total.

Full flag reference (13 inputs)
NameTypeFlagDescription
targetSTRING-tTarget URL including the protocol, e.g. https://www.example.com.
ajaxBOOLEAN-jUse the Ajax spider in addition to the traditional one.
minsSTRING-mThe number of minutes to spider for (defaults to no limit).
userSTRING-UUsername to use for authenticated scans, must be defined in the given context file.
context-fileFILE-nContext file which will be loaded prior to scanning the target.
alphaBOOLEAN-aInclude the alpha active and passive scan rules as well.
debugBOOLEAN-dShow debug messages in stdout.
delaySTRING-DDelay in seconds to wait for passive scanning.
levelSTRING-lMinimum level to show: PASS, IGNORE, INFO, WARN, or FAIL; use with -s (short-output) to hide example URLs.
max-timeSTRING-TMax time in minutes to wait for ZAP to start and the passive scan to run.
config_fileFILE-cConfig file to use to mark warnings as INFO, IGNORE, or FAIL.
zap-optionsSTRING-zZAP command line options passed through to the scanner.
short-outputBOOLEAN-sShort output format, do not show PASSes or example URLs.

example

Run zap-full-scan

zap-full-scan · command
# full active scan, Ajax spider on, 10-minute spider cap, short reportzap-full-scan.py -t https://www.example.com -j -m 10 -s -l WARN
sample output
Total of 48 URLsWARN-NEW: Absence of Anti-CSRF Tokens [10202] x 4	https://www.example.com/login (200 OK)WARN-NEW: Content Security Policy (CSP) Header Not Set [10038] x 11	https://www.example.com/ (200 OK)FAIL-NEW: Cross Site Scripting (Reflected) [40012] x 1	https://www.example.com/search?q=test (200 OK)FAIL-NEW: SQL Injection [40018] x 1	https://www.example.com/product?id=1 (200 OK)FAIL-NEW: 2	WARN-NEW: 2	INFO: 0	IGNORE: 0	PASS: 46

guidance

Choosing zap-full-scan

Use zap-full-scan when you have a live web app URL and want a complete active ZAP scan, not just a passive baseline. For an API defined by a spec, use zap-api-scan. For a multi-step ZAP run, use zap-automation-framework.

zap-api-scan

ZAP against an API contract rather than a crawlable site. Use it for specs, not pages.

zap-automation-framework

Drives ZAP from one YAML plan when a single fixed scan is not enough.

nikto

Classic web server scanner. Lighter coverage than a ZAP active scan.

faq

zap-full-scan questions

A full scan spiders the site and then runs the active rules, sending attack traffic to confirm real vulnerabilities. A baseline (zap-baseline) only observes passively and reports what it sees, so it is safer against production but finds less.

Run zap-full-scan yourself

A target URL is probed by httpx, then zap-full-scan spiders and actively scans the live host and writes the findings as a queryable output.

Facts on this page come from the live Trickest tool library.