Permissions Policy für TYPO3 konfigurieren

Browser-APIs wie Kamera, Mikrofon und Geolocation in TYPO3 einschränken — per TypoScript oder PSR-15 Middleware.

TYPO3 · Schritt für Schritt

Permissions Policy in TYPO3

Permissions Policy kontrolliert, welche Browser-APIs Ihre Website nutzen darf. Durch das Deaktivieren nicht benötigter APIs (Kamera, Mikrofon, Geolocation) reduzieren Sie die Angriffsfläche. Der Header ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check bewertet.

In TYPO3 setzen Sie den Header entweder per TypoScript oder über die PSR-15 Middleware. Beide Wege sind gleichwertig — die Middleware ist die sauberere Lösung, wenn Sie bereits eine zentrale Header-Middleware haben.

1Implementierung

Permissions Policy per TypoScript setzen

Setzen Sie den Header über config.additionalHeaders. Deaktivieren Sie alle APIs, die Ihre Website nicht benötigt. Für Websites mit Video-Autoplay behalten Sie autoplay=(self).

TypoScript SetupProduktiv
# TypoScript Setup — Permissions Policy
config.additionalHeaders {
    10.header = Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self)
}
PSR-15 Middleware (Alternative)Middleware
// In der PSR-15 SecurityHeaders Middleware
$response = $response->withHeader(
    'Permissions-Policy',
    'camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), idle-detection=(), serial=(), browsing-topics=()'
);
2Verifizierung

Header verifizieren

Leeren Sie den TYPO3-Cache und prüfen Sie den Header mit curl. In den Browser DevTools können Sie unter Application > Permissions Policy den Status jeder API einsehen.

TerminalVerifizieren
# Cache leeren und Header prüfen
vendor/bin/typo3 cache:flush
curl -sI https://ihre-domain.de | grep -i permissions

Häufige Fehler

Google Maps blockiert

Wenn Sie Google Maps nutzen und geolocation=() setzen, funktioniert die Standortbestimmung nicht mehr. Lösung: geolocation=(self) oder den Standort nur über die Maps-API abfragen.

Payment-API blockiert

Für Apple Pay und Google Pay benötigen Sie payment=(self). Mit payment=() wird die Payment Request API vollständig blockiert.

Compliance-Relevanz

Permissions Policy ist ein Defense-in-Depth-Mechanismus. Auch wenn keine direkte Compliance-Anforderung besteht, reduziert die Einschränkung von Browser-APIs die Angriffsfläche und ist Teil einer umfassenden Sicherheitsstrategie nach NIS2 Art. 21.

Wie steht Ihre Domain bei Permissions Policy?

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