Zum Inhalt
Website-Checkvon pandaworks

← Alle Punkte · Sicherheit

Permissions-Policy

Was geprüft

Geprüft wird, ob die Kopfzeile Permissions-Policy gesetzt ist; zerlegt wird sie nach der Syntax für strukturierte Kopfzeilen aus dem Internet-Standard RFC 9651. Eine syntaktisch fehlerhafte oder leere Kopfzeile ist ein eigener auffälliger Punkt, weil der Browser sie vollständig verwirft. Eine vom Abrufer gekürzte, sehr lange Kopfzeile ist „nicht geprüft“; die veraltete Feature-Policy wird nur als Hinweis genannt.

Wie relevant

Niedrig, wenn die Kopfzeile fehlt, leer oder fehlerhaft ist, weil sie Browserfunktionen wie Kamera, Mikrofon oder Standort nur zusätzlich absichert; der Browser fragt Besucher ohnehin um Erlaubnis.

Warum

Die Permissions-Policy legt fest, welche Browserfunktionen die Seite und eingebettete fremde Inhalte überhaupt anfragen dürfen. So kann ein eingebundenes Werbe- oder Fremdskript nicht nach Kamera oder Standort fragen, wenn Ihre Seite das nicht braucht.

Wie beheben

Setzen Sie eine Permissions-Policy, die nicht benötigte Funktionen mit leerer Liste () abschaltet. Achten Sie auf die neue Syntax: camera=() statt der alten Feature-Policy-Schreibweise camera 'none'.

Nebenwirkung: Abgeschaltete Funktionen fehlen auch eingebetteten Diensten: geolocation=() stoppt „Mein Standort“ in Karten, payment=() kann Bezahlknöpfe wie Apple Pay oder Google Pay stören, fullscreen=() den Vollbildmodus von Videos. Schalten Sie nur ab, was Sie sicher nicht nutzen, und testen Sie Karten, Videos und Kasse danach.

WordPress: Sicherheits- und Cache-Plugins schreiben die .htaccess oft selbst um und können eigene Kopfzeilen dabei entfernen oder doppelt setzen. Setzen Sie Kopfzeilen deshalb an genau einer Stelle (Plugin oder .htaccess außerhalb der Plugin-Blöcke „# BEGIN … # END“) und prüfen Sie nach jedem Plugin-Update mit curl -I.

Codebeispiel

Apache (.htaccess)

<IfModule mod_headers.c>
    Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), usb=()"
</IfModule>

nginx

add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), usb=()" always;

Cloudflare (Transform Rule)

Rules → Transform Rules → Response Header Transform Rules
Aktion: Set static — Header: Permissions-Policy — Wert: camera=(), microphone=(), geolocation=(), usb=()

Weiterführende Quellen

Quellen der Methodik

  • docs/SCORING.md — Status und Schweregrade (§2), Kategoriescore und Abdeckung (§3), Gesamtwert (§4), keine Doppelabzüge (§5), Prüfkatalog mit Gewichten (§6), Versionierung (§8), Formulierungsregeln (§9), bewusst nicht geprüft (§10)
  • docs/KALIBRIERUNG.md — Abgleich der Schwerefaktoren und Kappen mit externen Ankern (Web Almanac, Lighthouse, MDN HTTP Observatory, SSL Labs), Entscheidung scoring@1.4.0