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.
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.
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 -- 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;
}); 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 -- Permissions Policy (SSG)
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()" always; // vercel.json -- Permissions Policy
{
"headers": [{
"source": "/(.*)",
"headers": [{
"key": "Permissions-Policy",
"value": "camera=(), microphone=(), geolocation=(), payment=(), usb=()"
}]
}]
} Verifizieren
Prüfen Sie den Permissions-Policy-Header im Production-Build. Der Wolf-Agents Web Security Check analysiert alle gesperrten und erlaubten APIs.
# 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.