Permissions Policy in PHP konfigurieren

Schritt-für-Schritt-Anleitung: Permissions Policy in PHP einrichten — mit header()-Code zum Kopieren und Best Practices.

PHP · Schritt für Schritt

Permissions Policy in PHP

Permissions Policy kontrolliert, welche Browser-APIs Ihre Website und eingebettete Iframes nutzen dürfen. Durch das Deaktivieren ungenutzter APIs (Kamera, Mikrofon, Geolocation) reduzieren Sie die Angriffsfläche. Mit 10 von 166 Punkten im Wolf-Agents Web Security Check.

In PHP setzen Sie die Permissions Policy mit einem einzigen header()-Aufruf. Über auto_prepend_file wird der Header automatisch für alle PHP-Dateien gesetzt. Die Policy deaktiviert alle ungenutzten Browser-APIs.

In PHP-Projekten gibt es drei Wege, Security-Header zu setzen: die header()-Funktion direkt im Code, eine zentrale auto_prepend_file in der php.ini oder ein PSR-15 Middleware-Stack in modernen Frameworks. Fuer Permissions Policy empfehlen wir die auto_prepend_file-Methode, da sie alle PHP-Responses abdeckt -- auch Fehlerseiten und Legacy-Code, der keine Middleware verwendet.

Beachten Sie, dass header() in PHP vor jeder Ausgabe aufgerufen werden muss. Sobald der Body gesendet wird (auch durch ein einzelnes Leerzeichen vor <?php), koennen keine Header mehr gesetzt werden. Verwenden Sie output_buffering oder auto_prepend_file, um dieses Problem zu vermeiden. Der Wolf-Agents Web Security Check prueft den Permissions-Policy-Header automatisch.

1Schritt 1 von 3

Permissions Policy in PHP konfigurieren

Fügen Sie den Header in Ihrer security-headers.php hinzu. Über auto_prepend_file in der .user.ini wird die Datei vor jedem PHP-Script geladen.

security-headers.phpProduktiv
<?php
// security-headers.php — Permissions Policy

if (!headers_sent()) {
    header('Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()');
}
2Schritt 2 von 3

Konfiguration verifizieren

Prüfen Sie den Header mit curl oder dem Wolf-Agents Web Security Check.

TerminalVerifizierung
# Permissions Policy pruefen
curl -sI https://ihre-domain.de | grep -i permissions-policy

# Erwartete Ausgabe:
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), ...
Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige Prüfung aller 10 Punkte dieses Headers.
3Schritt 3 von 3

Häufige Fehler

Leere Policy statt expliziter Deny

Ein leerer Permissions-Policy-Header hat keine Wirkung. Jede API muss explizit mit =() deaktiviert werden. Fehlende APIs bleiben standardmäßig für die eigene Origin erlaubt.

Payment API blockiert Checkout

Wenn Sie payment=() setzen, wird die Payment Request API blockiert. Falls Sie Stripe, PayPal oder Apple Pay nutzen, müssen Sie payment=(self) setzen oder die Direktive weglassen.

Permissions-Policy vs. Feature-Policy

Feature-Policy ist veraltet und wird von modernen Browsern ignoriert. Verwenden Sie ausschließlich Permissions-Policy — die Syntax unterscheidet sich (Komma-getrennt statt Semikolon).

Compliance-Relevanz

OWASP — ASVS V14 — Sicherheitsrelevante HTTP-Response-Header als Pflichtanforderung
DSGVO — Art. 25 — Privacy by Design durch Deaktivierung ungenutzter Browser-APIs

Wie steht Ihre Domain bei Permissions Policy?

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