Safeguard
Security Guides•

How do you confirm a DAST finding is real before filing a ticket?

Replay the exact request, change one thing, and read the response yourself. A five step routine for confirming a DAST alert before it becomes a ticket.

Safeguard Security Team
4 min read

To confirm a DAST finding, replay the exact request the scanner sent, read the raw response, then change one variable at a time to see whether the behaviour holds. If you can reproduce it by hand and explain the cause, it is real. If not, treat it as unconfirmed.

Start from what the scanner gives you

A DAST alert should include the URL, the HTTP method, the parameter, the payload and the evidence, which is the part of the response that made the scanner suspicious. If your report lacks any of those, fix the report settings first. A finding without a request and a response cannot be checked.

The ZAP project's advice on false positives is blunt and applies to any scanner: make sure you understand the potential vulnerability being reported and test it manually before concluding it is not real. The reverse is just as true. Test it before concluding it is real.

Five steps

  1. Replay. Send the same request with a command line client or a proxy. Use a test account in a non production environment where possible.
  2. Read the response, not the status code. Many apps return 200 for an error page. Check whether the payload actually executed or was merely echoed back inside an encoded or inert context.
  3. Vary one thing. Remove the payload and compare. Change the payload to a harmless marker. If the behaviour changes with your payload and not without, the input matters.
  4. Check the effect. For injection, look for a changed result, a delay or an error that points at the backend. For cross site scripting, check whether the script runs in a browser, not just whether the string appears.
  5. Find the code. Trace the parameter to the handler. Knowing which line is at fault is what makes the ticket actionable, and it often settles the question.

Signs of a likely false alarm

ObservationWhat it suggests
Payload is reflected but HTML encodedOutput encoding is working
Error page is identical with and without payloadScanner matched generic error text
Finding appears only on a static assetRule fired on a header or file type, not on logic
Alert disappears on retryTiming or rate limit artefact
Same alert on every URLLikely a site wide header or banner rule

What to put in the ticket

Include the request, the response excerpt, your reproduction steps, the affected code location and a proposed severity. A ticket written this way can be fixed without a meeting.

If you cannot confirm it after reasonable effort, do not close it silently. Mark it unconfirmed, note what you tried, and set a review date so the question is not forgotten. For a wider view of DAST triage, see why DAST reports false alarms.

Try it yourself

Open the demo and look at how a scan result lists the request, the evidence and the affected URL for each finding.

Click through it at your own pace, or open it full screen.

One factual note on Safeguard

Safeguard offers reachability analysis to help judge whether a finding matters in context. If you want a quick look at your own code, the free scan at gold.safeguard.sh/scan is a no-account place to start.

Quick check

Is it safe to replay scanner requests against production?

Only with care. Active payloads can create records or trigger alerts. Prefer a staging copy and an account made for testing.

What if I cannot reproduce it?

Mark it unconfirmed with notes and a review date. Do not delete the alert, because intermittent bugs are real.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.