Getting started

Proof of possession

A web or DNS target cannot be scanned until you prove you control it — otherwise this platform would be an attack tool anyone could rent by the hour against anyone else's site.

Why proof is required

Scanning a live site for vulnerabilities is, by construction, indistinguishable from probing it for weaknesses. The only thing that separates a security scan you asked for from an attack is consent, and consent has to be checked against something more solid than a form field. Sentinelleai requires a live proof that you control the hostname before any web or DNS scan can run against it — the same discipline every "verify your domain" flow uses (Google Search Console, ACME's dns-01 and http-01 challenges), for the same reason.

The verified targets page listing hostnames and their verification status
Registered targets, each showing its verification method and status.

Two methods, either one is enough

A hostname can be proven one of two ways. Either is sufficient on its own, because the two cover different situations: someone who controls DNS may not have shell access to the web origin, and someone who can drop a file on the origin may not control DNS for that domain.

Either method proves control of the hostname; the check is live, not a box ticked once.Proof of possession for a scan target: a DNS TXT record or a well-known file, either one checked live at scan time, must confirm the token before the target is verified and scans are allowed; without either, the scan is refused.Target hostnameexample.comtoken: sv-8f2c1a4e…DNS TXT record_sentinelleai-challenge.<hostname>well-known filehttps://<hostname>/.well-known/sentinelleai-verification.txtLive check(either one suffices)Target verified → scans allowedNo proof → scan refused
Either method proves control of the hostname; the check is live, not a box ticked once.
Method 1 — DNS TXT recordtext
; DNS zone file excerpt
_sentinelleai-challenge.example.com.  IN  TXT  "sentinelleai-verify-EXAMPLE1a2b3c4d5e6f7g8h9i0j"
Method 2 — well-known file, served over HTTPS (HTTP is used only as a fallback)text
# served at:
# https://example.com/.well-known/sentinelleai-verification.txt
sentinelleai-verify-EXAMPLE1a2b3c4d5e6f7g8h9i0j
Why both methods exist
A verification token is not a secret in the way a password is — it is meant to be published, in a DNS record or a public file, and its only job is to be hard enough to guess that publishing it proves nothing except that you could publish it. It is generated from 256 bits of randomness for exactly that reason: not to hide it, but to make forging it infeasible.

Registering and verifying a target

  1. 1

    Register the hostname

    On the Targets page, enter a URL or a bare hostname and add it. A unique verification token is generated for it.
  2. 2

    Publish the token

    Add the token as a DNS TXT record at _sentinelleai-challenge.<your-hostname>, or publish it at https://<your-hostname>/.well-known/sentinelleai-verification.txt. You only need one of the two.
  3. 3

    Verify now

    Click "Verify now". Sentinelleai performs both checks live and marks the target verified as soon as either one succeeds, or failed with the specific reason from each check if neither did.
  4. 4

    Scan it

    Once verified, the hostname can be submitted to a web or DNS scan.

A target sits in one of three states: pending (registered, not yet proven), verified, or failed (the last check attempt did not find the token). Loopback and private addresses — localhost, RFC1918 ranges, and Tailscale's CGNAT range — need no proof at all, because they are nobody's asset but the operator's own; no proof of possession could ever meaningfully be offered for them.

Why proof is checked live, not once

Every ownership check runs as a real, timed network call — a live DNS lookup or a live HTTPS (with an HTTP fallback) fetch — at the moment you click "Verify now", rather than being recorded once as a permanent flag the first time it succeeds. A hostname's control can change — a domain gets sold, DNS gets repointed, a hosting account changes hands — and a verification that never re-checked would keep trusting a claim long after it stopped being true.

Deleting a verified target is treated as a meaningful, protection-reducing action: it requires a written reason before it takes effect, the same as accepting risk on a finding or suppressing one.