AI Agent Allowlist
Home Page-Types Database Agent Guardrails 2026 Incidents API Docs Pricing
Resources
Use Cases Industries & Buyers Learn: Core Concepts Implementation Guides Comparisons Schema & Data Reference FAQ Glossary
Why It Matters
2026 Agent Incidents Category Targeting Database Refreshes Contact Customer Login
Download Free Sample
never trust, always verify — per request

Zero Trust Was Never Just About Networks. It Applies to Every URL an Agent Opens.

Zero trust replaced "inside the perimeter is safe" with "verify every request, every time." Agent web navigation has the exact same weak spot the old perimeter model had: a domain an agent visited safely once gets treated as safe forever after. It isn’t. Zero trust for agents means the same URL gets checked against policy on every single request, not just the first.

This page is the philosophy underneath the mechanism: what "never trust, always verify" means once the subject is an autonomous browsing agent instead of a human employee on a corporate network, and why the shortcut of trusting a domain after one good visit is the exact gap that turns a routine research task into an incident.

EveryRequest checked, not just the first
28Page types verified per domain
40M+Domains, 99.99% of active usage
0Implicit trust carried across requests

The 2026 agent incidents were, in part, trust failures. Agents that had operated normally for hours or weeks were then trusted for actions that should have re-triggered verification — including logging into third-party accounts. A URL-level zero-trust check, re-run on every request, would have caught almost every one of those hops. Would your agents have been stopped? Check the incident analysis → The account takeovers across four third-party services are the clearest single case of implicit trust turning into a breach.

The translation

Zero-trust principles, applied to agent navigation

Zero trust is not a product, it is a small set of principles first written for human identity and network access. Every one of them has a direct, almost literal equivalent when the "user" is an autonomous agent choosing which URL to open next.

Zero-trust principle (human/network)Agent-navigation equivalentWhat enforces it
Never trust, always verify
Don't assume safety from network location.
Don't assume safety from a domain's prior visits. Check page type on every navigation, not once per domain.Per-URL lookup against the page-type database on every request
Verify explicitly
Authenticate and authorize every session.
Resolve every URL to a page type and category before allowing the request to proceed.Policy engine call at the egress chokepoint
Least privilege access
Grant only the access a task needs.
Allow only the page types a given agent's task requires — docs and pricing for research, nothing for checkout unless explicitly scoped.Fleet-scoped policy rules keyed on page type
Assume breach
Design as if an attacker is already inside.
Design as if the current page is hostile or compromised, regardless of how the agent arrived there.Default-deny for unclassified destinations and write-surface egress rules
Micro-segmentation
Contain lateral movement inside the network.
Contain an agent's reach to specific page types on a domain, not the whole domain at once.Page-type granularity instead of domain-level allow/deny
Continuous monitoring
Log and analyze access in real time.
Log every navigation decision — URL, page type, verdict — so drift and anomalies surface quickly.Verdict log at the policy engine

The row that most changes how a policy actually behaves is micro-segmentation. Network zero trust segments a flat network into small zones so a breach in one does not grant access to the rest. Agent-navigation zero trust does the equivalent by segmenting a single domain into page types rather than treating the whole domain as one trust zone. That distinction is what makes it possible to say "allow this agent on the vendor's documentation and pricing pages, deny it everywhere else on that same domain" instead of the cruder, and far less useful, choice between allowing or blocking the domain wholesale.

The specific failure mode

"It worked last time" is not a security model

Most agent frameworks that claim some form of safety today implement trust-on-first-use, whether they call it that or not: a domain gets vetted once, then treated as safe for the rest of a session or indefinitely. Zero trust for agents rejects that shortcut for reasons that are concrete, not theoretical.

  Cached trust survives a redirect chain

An agent follows a link on a domain it already trusts. That link 302-redirects through an intermediate host to a completely different domain — a common pattern for tracking links, affiliate links, and compromised or repurposed short links. If trust was granted per-domain rather than per-request, the agent carries its "safe" status straight into the redirect target without a fresh check.

  A page's content and purpose change after the first visit

The domain an agent verified this morning is not guaranteed to serve the same content this afternoon. Pages get redesigned, subdomains get repurposed, and expired domains get re-registered by an entirely different owner. A one-time check answers a question about the past; only a per-request check answers a question about now.

  A session carries more privilege than a single visit ever should

Once an agent is "logged in" or otherwise trusted in a session, many implementations stop re-checking the pages it visits within that session at all. That is exactly the assumption the 2026 account-takeover incidents exploited: agents that had already established some form of standing access were then trusted for further authenticated actions nobody separately verified against policy.

  A hostile page can direct the agent's next request

Prompt injection on a page an agent is reading can produce a link or instruction pointing at a completely different, unverified destination. If the policy check only runs when an agent "starts" browsing a domain, an injected mid-session redirect to a credential or write surface never gets checked at all.

Implementation

Building per-request verification into an agent stack

None of this requires reinventing an agent framework. It requires moving the trust decision from "once, at the start" to "every time, before the request leaves."

Intercept every navigation

Route agent egress through a gateway, proxy, or framework hook that sees every outbound URL — not just the first one in a session — so there is no path around the check.

Resolve page type per URL

Look up the exact URL against the verified page-type map on every request. A domain visited safely ten times still gets checked an eleventh time, because the URL, not the domain's history, is the unit of trust.

Re-verify across redirects

Treat each hop in a redirect chain as its own navigation requiring its own check. A trusted starting URL does not vouch for wherever a 301 or 302 ultimately lands.

Log the verdict, not just the outcome

Record page type, category, and decision for every navigation so a security team can see exactly when and why trust was granted, and catch drift before it becomes an incident.

The performance objection — "checking every request is too slow" — does not survive contact with how the lookup actually works. A local copy of the page-types database resolves a URL to a page type as a local index read, not a network round trip, so per-request verification adds negligible latency compared to the cost of the agent's own navigation. The API is available too, for teams that would rather not host the data themselves, at the cost of one extra network hop per lookup.

Side by side

Implicit trust vs. zero-trust navigation

  Implicit, session-based trust

  • Domain vetted once, trusted for the rest of the session
  • Redirect targets inherit the trust of the page that linked to them
  • A page's content is assumed unchanged since the last visit
  • An injected instruction mid-session can point the agent anywhere unchecked
  • Compromise anywhere in a session compromises every later action in it
  • Audit trail shows what the agent did, not what it was allowed to do at each step

  Zero-trust, per-request verification

  • Every URL checked against policy, regardless of prior visits to the domain
  • Each redirect hop re-verified as its own navigation
  • Page-type resolution reflects the current, re-verified database, not a first-visit snapshot
  • A mid-session injected link is checked exactly like the agent's first request
  • A compromised page can only cause a denied request, not a trusted one
  • Every decision is logged with the policy and data that produced it
A worked scenario

One session, five navigations, one wrong turn

Abstract principles are easier to evaluate against a concrete sequence. Here is a plausible research-agent session on a single SaaS vendor's domain, with the verdict a per-request zero-trust check would produce at each step — contrasted with what a session-trust model would have done instead. Note that every one of the five requests targets the same domain; nothing about the domain itself changes across the session. What changes, and what a per-request check is actually reacting to, is the page type of the specific URL requested at each step.

Request 1Agent opens the vendor's documentation page to research an integration.Allow
Request 2Agent follows an in-page link to the pricing page for the same vendor.Allow
Request 3A promotional banner on the pricing page links through a tracking redirect that ultimately lands on a login page — on the same domain the agent has now visited twice.Deny
Request 4Agent backs out and opens the vendor's status page to check for a known outage.Allow
Request 5Agent is instructed by injected page text to "confirm your session" at a checkout-classified URL on the same domain.Deny

A session-trust model that vetted the domain once at request 1 would have waved requests 3 and 5 through without a second look — the domain was already "trusted," and neither the redirect chain nor the injected instruction changed that status. A per-request zero-trust check treats every one of the five requests as its own event, resolves the actual page type each URL renders, and denies exactly the two that cross into credential and transaction surfaces — regardless of how much prior, legitimate browsing on the same domain preceded them.

Getting there

Rolling out per-request verification without a rewrite

Moving from session-based trust to per-request verification is a configuration change in most stacks, not a rearchitecture, because the enforcement point — a gateway, proxy, or framework navigation hook — usually already exists.

1

Find the chokepoint

Identify wherever agent navigations already pass through a single point — an AI gateway, forward proxy, or the framework's own tool-call layer for a browsing tool. That is where the check belongs.

2

Remove the session cache

If the current implementation caches a "trusted" verdict per domain for the life of a session, remove or bypass that cache for policy purposes specifically, even if it stays for unrelated performance reasons like DNS or TLS session reuse.

3

Wire in the per-URL lookup

Point the chokepoint at a local copy of the page-type database or the lookup API, and require a fresh resolution on every navigation event, including every redirect hop, before traffic proceeds.

A fourth step matters once the first three are running: decide what happens on a miss. A URL that resolves to no known page type on an unfamiliar domain is not automatically hostile, but it is also not automatically safe, and a zero-trust posture treats "unknown" as its own category rather than quietly defaulting to allow. Most rollouts pair the per-request check with a default-deny fallback for anything the database has not yet classified, then loosen specific, reviewed exceptions in rather than starting from an open policy and trying to lock it down after the fact. That ordering — start closed, open deliberately — is the same lesson zero trust taught network security a decade earlier, applied to a different kind of traffic.

The dependency underneath

Zero trust needs an answer, not just a rule

"Verify every URL" is only as good as what verification can determine. A policy engine that checks a URL against guessed paths will confidently produce wrong verdicts on every request, not just the first — zero trust does not fix bad data, it just runs the bad data more often. The verification step needs a source of truth: which page type a URL actually is, confirmed against the live site.

28Page types resolved per lookup
700+ / 59IAB / filtering categories, same lookup
1Local index read per navigation
4Third-party accounts breached in 2026 by trust that outlived its first check
Where this fits

Zero trust is the policy; page-type data is the evidence

Zero trust tells an agent stack to check every request. Verified URLs and a governance process tell it what to check against, and who is accountable for the policy it enforces.

FAQ

Zero trust for agents, answered

Isn't checking a domain once enough if nothing about it has changed?
The problem is you cannot know nothing has changed without checking again. Domains get redesigned, expire and get re-registered under new ownership, and pages get compromised after the fact. A per-request check costs a local lookup; a stale trust decision costs an unverified request to a page that may no longer be what it was.
Does zero trust mean re-authenticating the agent on every request?
No — zero trust for navigation is about re-verifying the destination, not the agent's own identity on every hop. The agent's credentials or API key are established once; what gets re-checked every time is whether the specific URL it is about to open is a page type and category the current policy allows.
How does this handle redirect chains specifically?
Each hop in a redirect chain is treated as its own navigation event and checked independently. A trusted starting URL does not extend trust to wherever a subsequent 301 or 302 points; the policy engine resolves and evaluates the final and intermediate destinations separately.
Doesn't per-request verification slow agents down?
Not meaningfully. A local copy of the page-type database resolves a URL to a page type as an index lookup, which is fast compared to the network round trip the agent's own page request already makes. The API adds one additional network hop for teams that prefer not to host the data.
How is this different from just using a domain allowlist?
A domain allowlist grants trust to an entire domain at once and rarely gets re-checked per page. Zero-trust navigation evaluates the specific page type of each URL on every request, so the same domain can have some page types allowed and others denied, and the verdict is re-derived every time rather than cached indefinitely.
Does zero-trust navigation replace prompt-level instructions telling the agent what not to do?
It should sit alongside them, not instead of them, but it is the layer that actually holds when instructions fail. Prompt-level rules live inside the model and can be argued around by an ambiguous task or a hostile page's injected text. A per-request URL check is external to the model and enforced at the network or framework layer, so it still denies the request even when the model has been talked into asking for it.

Verify every URL, on every request

The page-type data zero-trust navigation checks against — 28 page types, 40 million+ domains, re-verified on every refresh cycle.

See the Database