DAST Scanner Configuration
DAST Scanner Configuration
xy-dast scan -u https://example.com --profile spa -o report.jsonProfile Locations
Directory
Description
xy-dast scan --list-profilesProfile Schema
# Identity
name: my-profile
description: "Description of the profile"
extends: openapi # Optional: inherit from a base profile
# Scope - URL patterns to include/exclude
scope:
includePatterns:
- "https://api.example.com/v2/.*"
excludePatterns:
- ".*logout.*"
- ".*\\.js$"
- ".*\\.css$"
# Authentication
authentication:
method: BEARER # NONE, FORM, BEARER, HEADER, BASIC, JSON, SCRIPT
loginUrl: "" # Login form URL (for FORM method)
usernameField: "username" # Form field name for username
passwordField: "password" # Form field name for password
headerName: "Authorization" # Header name (for BEARER/HEADER)
headerValue: "${env:API_TOKEN}" # Header value
headerPrefix: "Bearer " # Header value prefix
# Users (for form-based authentication)
users:
- name: "test-user"
username: "admin"
password: "admin123"
default: true
# Session management
session:
method: COOKIE # COOKIE, HEADER, or SCRIPT
# Technology context (helps optimize scanning)
technology:
language: javascript
database: mysql
framework: express
include:
- "Db / MySQL"
- "Language / JavaScript"
# Spider configuration
spider:
duration: 10 # Maximum duration in minutes
depth: 5 # Maximum crawl depth
children: 10 # Maximum children per node
# AJAX Spider configuration (for SPAs)
ajaxSpider:
duration: 15 # Maximum duration in minutes
depth: 5 # Maximum crawl depth
browsers: 4 # Number of browser instances
skip: false # Set to true to disable AJAX spider
# Active scan configuration
activeScan:
duration: 20 # Maximum duration in minutes
ruleDuration: 5 # Maximum duration per rule in minutes
policy: "" # Scan policy (e.g., "API-Scan")
strength: "MEDIUM" # Attack strength: LOW, MEDIUM, HIGH, INSANE
threshold: "MEDIUM" # Alert threshold: LOW, MEDIUM, HIGH
rules: [] # Per-rule overrides (see below)
# Passive scan configuration
passiveScan:
waitDuration: 5 # Maximum wait time in minutes
# Deep crawl (headless browser-based pre-scan crawling)
deepCrawl:
enabled: false # Enable deep crawl before the scan
depth: 3 # Maximum crawl depth
duration: "5m" # Crawl timeout (accepts: 30s, 5m, 1h)
# Vulnerability check (template-based CVE/misconfiguration detection)
vulnCheck:
enabled: false # Enable post-scan vulnerability check
severities: # Severity filter
- critical
- high
- medium
excludeTags: # Template tags to exclude (default: dos, fuzz)
- dos
- fuzz
rateLimit: 50 # Requests per second
timeout: "15m" # Scan timeout
# templates: # Advanced: override template directories. The defaults
# - ... # cover CVEs, exposures, misconfigurations, and known
# # vulnerabilities and rarely need to be customised.
# Client certificate (mTLS) — optional
# Equivalent to --client-cert / --client-cert-password on the CLI.
# Orthogonal to other authentication methods (combine as needed).
clientCertificate:
path: /path/to/client.p12 # PKCS#12 (.p12 / .pfx) certificate
password: "${env:CERT_PASSWORD}" # Read from env to keep secrets out of YAML
# Result filtering
filtering:
excludeRules: # Rule IDs to exclude from results
- "10094"
riskThreshold: "" # Minimum risk: INFO, LOW, MEDIUM, HIGHProfile Inheritance
Authentication Configuration
FORM - HTML Form Login
BEARER - Bearer Token
HEADER - Custom Header
BASIC - HTTP Basic Authentication
Authentication Methods Reference
Method
Description
Required Fields
Per-Rule Policy Overrides
Example: OWASP Juice Shop Profile
Profile Schema Reference
Section
Fields
Description
Last updated

