Permissions Policy für Astro konfigurieren

Schritt-für-Schritt-Anleitung: Browser-APIs per Middleware oder Hosting-Konfiguration einschränken -- Kamera, Mikrofon, Geolocation und Payment sperren.

Astro · Schritt für Schritt

Permissions Policy in Astro

Die Permissions Policy (ehemals Feature Policy) kontrolliert, welche Browser-APIs Ihre Website nutzen darf. Durch das Sperren ungenutzter APIs wie Kamera, Mikrofon und Geolocation reduzieren Sie die Angriffsfläche. Der Header ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check relevant.

In Astro setzen Sie den Header per src/middleware.ts (SSR) oder auf dem Webserver (SSG). Die Syntax ist feature=(allowlist) -- leere Klammern () sperren die API vollständig. Wolf-Agents sperrt Kamera, Mikrofon, Geolocation, Payment und USB per Middleware.

1 Schritt 1 von 3

Permissions Policy per Middleware

Im SSR-Modus setzen Sie den Header in src/middleware.ts. Listen Sie alle zu sperrenden APIs auf. Verwenden Sie () zum Sperren und (self) zum Erlauben nur für die eigene Domain.

src/middleware.ts SSR
// src/middleware.ts -- Permissions Policy (SSR)
import { defineMiddleware } from 'astro:middleware';

export const onRequest = defineMiddleware(async (context, next) => {
  const response = await next();

  response.headers.set('Permissions-Policy', [
    'camera=()',
    'microphone=()',
    'geolocation=()',
    'payment=()',
    'usb=()',
    'interest-cohort=()',
  ].join(', '));

  return response;
});
2 Schritt 2 von 3

SSG-Hosting-Varianten

Für statische Deployments konfigurieren Sie Permissions Policy auf dem Webserver oder der Hosting-Plattform. Die Direktiven sind identisch -- nur der Konfigurationsort ändert sich.

nginx.conf Nginx
# Nginx -- Permissions Policy (SSG)
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()" always;
vercel.json Vercel
// vercel.json -- Permissions Policy
{
  "headers": [{
    "source": "/(.*)",
    "headers": [{
      "key": "Permissions-Policy",
      "value": "camera=(), microphone=(), geolocation=(), payment=(), usb=()"
    }]
  }]
}
3 Schritt 3 von 3

Verifizieren

Prüfen Sie den Permissions-Policy-Header im Production-Build. Der Wolf-Agents Web Security Check analysiert alle gesperrten und erlaubten APIs.

Terminal Verifizieren
# Permissions Policy prüfen
curl -sI https://ihre-domain.de | grep -i permissions-policy

# Erwartete Ausgabe:
# Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()

Häufige Fehler bei Permissions Policy in Astro

Alte Feature-Policy-Syntax

Der Header heisst Permissions-Policy, nicht Feature-Policy. Die alte Syntax camera 'none' ist veraltet -- verwenden Sie camera=().

Benötigte API gesperrt

Wenn Ihre Anwendung Geolocation nutzt, dürfen Sie geolocation=() nicht setzen. Verwenden Sie stattdessen geolocation=(self) für die eigene Domain.

Komma statt Semikolon

Permissions-Policy-Direktiven werden mit Komma getrennt, nicht mit Semikolon. Semikolon-Trennung wird von Browsern ignoriert.

Compliance-Relevanz

Das Einschränken ungenutzter Browser-APIs reduziert die Angriffsfläche und unterstützt NIS2-Anforderungen an technische Sicherheitsmaßnahmen. Der Wolf-Agents Web Security Check bewertet Permissions Policy mit bis zu 10 Punkten.

Wie steht Ihre Domain bei Permissions Policy?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.