DVSentry Documentation API referenceOpen the app

Web and network security

Tests your running websites and APIs from the outside (DAST), grades TLS and security headers, checks exposed ports and watches your external attack surface (EASM). Included in every plan.

Step 1: prove you own the domain

DVSentry tests only targets you have proven you control.

  1. Open Administration → Domain Verification and add your domain, for example example.com.
  2. DVSentry shows a DNS TXT record:
    TypeNameValue
    TXT_security-platform-verification.example.comthe token DVSentry shows (a long random string)
    Add it at your DNS provider and choose Verify. DNS can take a few minutes.
  3. A proof covers subdomains by default (verification_scope: wildcard). For scans you start, a proof is current for 24 hours; after that choose Verify again (leave the TXT record in place). Scheduled scans re-read the record live before each run.

API equivalent: POST /domains with {"hostname":"example.com"}, then POST /domains/{id}/verify.

Step 2: register a target

Under Web & Network, add the exact URL and an environment:

Optional allowed_paths / disallowed_paths keep the scan inside or out of parts of the site.

Active modes ask an Admin to authorize active scans on the target (POST /web-targets/{id}/authorize-active-scans) and each run to confirm the target is authorized (confirm_authorized_target: true). Private and internal addresses, cloud metadata addresses and redirects to other hosts are always refused, every request is pinned to the address DVSentry resolved, and TLS errors are never ignored.

Step 3: run a scan

Pick the target and a mode, name the report and run it. Progress shows the current check and the requests sent.

Mode (mode)What it doesActive?
passiveReads pages, headers, cookies, TLS and well-known filesNo
headersGrades six security headersNo
network-surfaceFinds open ports and services on the verified host, paced and budgeted; custom_ports adds up to 50 portsYes
activeSends test payloads for XSS, SQL injection, template injection, command injection, SSRF, path traversal and CORS (untrusted_cors_origin)Yes
api-securityReads your OpenAPI document (found automatically or api_schema_path) and tests authentication and authorization, optionally BOLA/IDOR with two identities; write requests only with api_allow_state_changing_requestsYes
role-differentialSigns in as two test accounts with different roles and checks the lower one cannot reach the higher one's data (BOLA/BFLA)Yes
dom-analyzerOpens single-page apps in an isolated browser to find pages and API calls (browser crawl)Yes
concurrency, resilience, chaos-planLoad-probe and resilience planning checksYes

Bounds: timeout_seconds 30-900 (default 300), requests_per_second 1-5 (default 2), max_requests up to 50 (left out = the mode's own budget).

Example through the API (scope scans:trigger):

curl -sS -X POST "$DVSENTRY_URL/v1/web-targets/$TARGET_ID/scans" \
  -H "Authorization: Bearer $DVSENTRY_TOKEN" -H "Content-Type: application/json" \
  -d '{"mode":"passive","timeout_seconds":300}'
# active modes also need "confirm_authorized_target": true

TLS and compromised certificate authorities

TLS checks grade the served chain and compare it with certificate authorities whose keys are known to be compromised (for example the eMudhra intermediates browsers blocked in October 2026). A match is a critical finding and the TLS grade becomes F.

Runtime version advisories

The X-Powered-By and Server headers are compared with known-vulnerable runtime versions (PHP, nginx, Apache, OpenSSL, Tomcat, Node.js, lighttpd). A match is "likely vulnerable, confirm with a rescan"; DVSentry never sends an exploit probe.

Signed-in testing

For role-differential and authenticated api-security, add auth profiles to the target (Admin). Use dedicated test accounts only, never a real customer or production administrator.

auth_typeUse
bearer_jwtA token you paste
form_loginA login form: path, field names, optional CSRF token
oauth_client_credentialsToken URL, client id and secret
custom_headersFixed headers
imported_sessionSession headers from a Secret Vault dast_session entry (7-day cap)
recorded_loginA recorded browser login replayed in an isolated browser (placeholders {username}, {password}, {totp} only)

A TOTP seed for the test account is stored as a Secret Vault dast_totp_seed entry; it never leaves DVSentry's control plane, and the scanner asks for one 30-second code at a time. Signed-in scans run in an isolated scanner.

API descriptions

Import an OpenAPI, Postman, HAR or GraphQL SDL description for a target (API specs). DVSentry keeps only endpoint shapes, never values. State-changing checks (POST/PUT/PATCH, never DELETE) need a preview and an Admin's consent bound to that exact list of endpoints.

External attack surface (EASM)

For a verified domain, Web & Network → External attack surface discovers hosts from DNS, Certificate Transparency (Cert Spotter) and passive DNS (AlienVault OTX), keyless, for that verified root only. Runs record assets, observations and events: new host, certificate changed, new service. It never brute-forces names or scans the internet.

Schedules

Add a recurring scan per target (POST /web-targets/{id}/schedules from the target page). Each run re-confirms domain ownership with a live DNS lookup first; POST /v1/web-scan-schedules/{id}/run runs one now.

What DVSentry never does here

Scan a host you have not proven, follow a redirect to another host, reach private or metadata addresses, send DELETE requests, or keep a signed-in test credential in the scanner.

Something missing or unclear? Tell us with Feedback in the app.