Agentregels afdwingen

Afdwingen is fase 2 van SilentShields AI-agentcontrole: in plaats van AI-agentbezoeken alleen te registreren, past uw server of edge uw beleid per sleutel actief toe — elke agent wordt toegestaan, beperkt of geblokkeerd. Het bouwt direct voort op de observatiemodus. De enforcement-componenten (Next.js-middleware, sidecar-binary, Cloudflare Worker) zijn momenteel op aanvraag beschikbaar in early access — neem contact op via [email protected].

Eerst observeren, dan afdwingen

Onze duidelijke aanbeveling: schakel eerst de observatie in, laat die een tot twee weken draaien en bekijk het rapport voordat u iets blokkeert — dezelfde gefaseerde aanpak als de leermodus van Wordfence of een DMARC-rollout (none → quarantine → reject). Pas het rapport laat zien welke AI-diensten uw site daadwerkelijk bezoeken en wat een blokkade u zou kosten, bijvoorbeeld citaties in AI-zoekresultaten. Afdwingen zonder dat beeld is blind beslissen.

Zo werkt het afdwingen

Elke enforcer deelt hetzelfde contract: hij haalt een policy-bundle op voor uw API-sleutel, verifieert de Ed25519-handtekening van de bundle tegen SilentShields gepinde publieke sleutels en beslist vervolgens lokaal — toestaan, weigeren of beperken — zonder één aanroep in het antwoordpad.

De gepinde signeersleutels haalt u eenmalig op van https://api.silentshield.io/.well-known/silentshield-agent-keys. En elke enforcer werkt fail-open: bij elke fout — netwerk, handtekening, verlopen bundle — wordt het verzoek doorgelaten. Het afdwingen kan uw site nooit platleggen.

Installatievarianten

Next.js (Edge-middleware)

Dezelfde Next.js-adapter die observeert, kan ook afdwingen. Stel de policy-omgevingsvariabelen in; de middleware past uw beleid dan toe aan de edge:

.envbash
AGENT_POLICY_URL=https://api.silentshield.io/api/v1/agent/policy
AGENT_OBSERVE_API_KEY=YOUR_API_KEY
AGENT_TRUSTED_KEYS=[{"kid":"…","key":"<base64 ed25519 pubkey>"}]

Reverse proxy (nginx / Caddy / Traefik)

Eén klein sidecar-binary bedient alle drie de proxy's: de proxy vraagt het via forward auth één keer per verzoek. Start het met uw site-sleutel en de vertrouwde sleutels:

Terminalbash
AGENT_POLICY_URL="https://api.silentshield.io/api/v1/agent/policy" \
AGENT_SITE_KEY="YOUR_API_KEY" \
AGENT_TRUSTED_KEYS='[{"kid":"…","key":"<base64 ed25519 pubkey>"}]' \
AGENT_SIDECAR_LISTEN=":8127" \
  ./agent-sidecar

Het sidecar antwoordt op GET /auth met 204 (toestaan), 403 (weigeren) of 429 plus Retry-After (beperken). Zo koppelt u het aan uw proxy:

nginx.confnginx
location = /_ss_auth {
    internal;
    proxy_pass              http://127.0.0.1:8127/auth;
    proxy_pass_request_body off;
    proxy_set_header        Content-Length "";
    proxy_set_header        X-Forwarded-Method $request_method;
    proxy_set_header        X-Forwarded-Uri    $request_uri;
    proxy_set_header        X-Forwarded-Host   $host;
    proxy_set_header        X-Forwarded-For    $remote_addr;
    proxy_set_header        User-Agent         $http_user_agent;
    proxy_set_header        Signature          $http_signature;
    proxy_set_header        Signature-Input    $http_signature_input;
    proxy_set_header        Signature-Agent    $http_signature_agent;
}
location / {
    auth_request /_ss_auth;
    # ... your normal proxy_pass to the origin ...
}
Caddyfilecaddy
example.com {
    forward_auth 127.0.0.1:8127 {
        uri /auth
        copy_headers User-Agent Signature Signature-Input Signature-Agent
        # Caddy sends X-Forwarded-Method/-Uri/-Host automatically
    }
    reverse_proxy origin:8080
}
traefik.ymlyaml
http:
  middlewares:
    silentshield:
      forwardAuth:
        address: "http://agent-sidecar:8127/auth"
        authRequestHeaders:
          - "User-Agent"
          - "Signature"
          - "Signature-Input"
          - "Signature-Agent"

Cloudflare Worker

De Cloudflare Worker-enforcer verifieert de policy-bundle met Web Crypto Ed25519 en blokkeert voordat verzoeken uw origin überhaupt bereiken:

Terminalbash
cd enforcers/cloudflare-worker
npx wrangler secret put AGENT_SITE_KEY
# set AGENT_POLICY_URL + AGENT_TRUSTED_KEYS in wrangler.toml [vars]
npx wrangler deploy

Eerlijke grenzen

Agentische browsers op residentiële IP-adressen (Comet, ChatGPT Atlas en vergelijkbare) zijn technisch niet te onderscheiden van menselijke bezoekers. Geen enkel product kan ze betrouwbaar identificeren — SilentShield doet voor deze categorie daarom bewust geen afdwingbelofte.

robots.txt en uitgestuurde content-signalen zijn adviserend: nette crawlers houden zich eraan, maar niets dwingt ze daartoe. Technische afdwinging gebeurt alleen in de enforcers op deze pagina — en zelfs die handelen conservatief en weigeren alleen eenduidig geïdentificeerde bekende agents, zodat legitieme bezoekers nooit worden geblokkeerd.

Uw beleid configureren

Welke agent wat mag, configureert u per API-sleutel in de agent-hub: API-sleutels → sleutel selecteren → Agent. Voorinstellingen dekken de gangbare gevallen af; elke wijziging wordt een nieuw ondertekende bundle die uw enforcers automatisch overnemen.

Naar de agent-hub →