Håndhæv agentregler

Håndhævelse er trin 2 i SilentShields AI-agentkontrol: I stedet for kun at registrere AI-agenters besøg anvender din server eller edge aktivt din politik pr. nøgle — hver agent tillades, begrænses eller blokeres. Den bygger direkte oven på observationstilstanden. Enforcement-komponenterne (Next.js-middleware, sidecar-binær, Cloudflare Worker) leveres i øjeblikket på forespørgsel i early access — kontakt [email protected].

Observér først, håndhæv derefter

Vores klare anbefaling: Slå observationen til først, lad den køre en uge eller to, og gennemgå rapporten, før du blokerer noget — samme trinvise udrulning som Wordfences læringstilstand eller DMARC (none → quarantine → reject). Kun rapporten viser, hvilke AI-tjenester der faktisk besøger dit websted, og hvad en blokering ville koste dig, fx citater i AI-søgning. At håndhæve uden det billede er at beslutte i blinde.

Sådan fungerer håndhævelsen

Alle enforcere deler samme kontrakt: De henter et policy-bundle for din API-nøgle, verificerer bundlets Ed25519-signatur mod SilentShields pinnede offentlige nøgler og beslutter derefter lokalt — tillad, afvis eller begræns — uden et eneste kald på anmodningsstien.

De pinnede signeringsnøgler henter du én gang fra https://api.silentshield.io/.well-known/silentshield-agent-keys. Og hver enforcer arbejder fail-open: Ved enhver fejl — netværk, signatur, udløbet bundle — slippes anmodningen igennem. Håndhævelsen kan aldrig lægge dit websted ned.

Opsætningsvarianter

Next.js (Edge-middleware)

Den samme Next.js-adapter, der observerer, kan også håndhæve. Sæt policy-miljøvariablerne; middlewaren anvender derefter din politik ved edgen:

.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)

Én lille sidecar-binær betjener alle tre proxyer: Proxyen spørger den én gang pr. anmodning via forward auth. Start den med din site-nøgle og de betroede nøgler:

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

Sidecaren svarer på GET /auth med 204 (tillad), 403 (afvis) eller 429 plus Retry-After (begræns). Sådan kobler du den på din 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

Cloudflare Worker-enforceren verificerer policy-bundlet med Web Crypto Ed25519 og blokerer, før anmodninger overhovedet når din origin:

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

Ærlige grænser

Agentiske browsere på private IP-adresser (Comet, ChatGPT Atlas og lignende) kan teknisk ikke skelnes fra menneskelige besøgende. Intet produkt kan identificere dem pålideligt — SilentShield giver derfor bevidst intet håndhævelsesløfte for denne kategori.

robots.txt og udsendte content-signaler er vejledende: Velopdragne crawlere følger dem, men intet tvinger dem til det. Teknisk håndhævelse sker kun i enforcerne på denne side — og selv de handler konservativt og afviser kun entydigt identificerede kendte agenter, så legitime besøgende aldrig blokeres.

Konfigurer din politik

Hvad hver agent må, konfigurerer du pr. API-nøgle i agent-hubben: API-nøgler → vælg en nøgle → Agent. Forudindstillinger dækker de almindelige tilfælde; hver ændring bliver til et nyt signeret bundle, som dine enforcere automatisk henter.

Åbn agent-hubben →