Zum Hauptinhalt springen

Permissions-Policy: Browser-Funktionen gezielt einschränken

Fehlt die Permissions-Policy, sind Kamera, Standort und weitere sensible Browser-Funktionen auf Ihrer Seite technisch nicht eingeschränkt. So sperren Sie ungenutzte Rechte.

Security-Header3 Min. LesezeitVeröffentlicht am Aktualisiert am
Inhaltsverzeichnis

Fehlt der Permissions-Policy-Header, gibt es keine explizite Einschränkung dafür, welche sensiblen Browser-Funktionen eine Seite oder ihre eingebetteten Inhalte nutzen dürfen. EverAudit meldet das als Befund in der Kategorie „Security-Header".

Was ist das Problem?#

Ohne Permissions-Policy überlässt eine Website es allein den Nutzern, im Einzelfall eine Berechtigungsanfrage des Browsers zu akzeptieren oder abzulehnen — etwa für Kamera, Mikrofon oder Standort. Es gibt keine serverseitige Vorabsperre für Funktionen, die die Seite ohnehin nicht benötigt.

Der Header sieht so aus:

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Die leeren Klammern () bedeuten: Diese Funktion ist für die gesamte Seite und alle eingebetteten iframes vollständig deaktiviert — unabhängig davon, ob ein Skript versucht, danach zu fragen.

Warum prüft EverAudit das?#

EverAudit prüft bei jeder gecrawlten Seite, ob ein Permissions-Policy-Header gesetzt ist. Fehlt er vollständig, wird das gemeldet, da damit potenziell alle vom Browser unterstützten Funktionen ohne explizite Einschränkung zur Verfügung stehen — auch solche, die für den eigentlichen Seiteninhalt gar nicht gebraucht werden.

Der Befund fällt besonders bei Seiten mit eingebundenen Drittanbieter-Skripten oder iframes ins Gewicht, da diese ohne Permissions-Policy grundsätzlich dieselben Rechte erhalten wie die Hauptseite selbst.

Welche Auswirkung hat das?#

Fehlt die Permissions-Policy, kann eingeschleuster oder kompromittierter Drittanbieter-Code versuchen, ungenutzte, aber technisch verfügbare Funktionen wie Kamera-, Mikrofon- oder Standortzugriff anzufragen. Selbst wenn der Browser dafür eine Nutzerbestätigung verlangt, ist bereits die Möglichkeit einer solchen Anfrage ein unnötiges Risiko, wenn die Seite diese Funktion gar nicht benötigt.

Besonders bei Seiten mit vielen eingebundenen Drittanbieter-Widgets — Werbebanner, Social-Media-Einbettungen, Analyse-Tools — begrenzt eine fehlende Permissions-Policy nicht, was diese eingebetteten Skripte technisch dürfen. Für Besucher bedeutet das eine erhöhte Angriffsfläche, ohne dass sie das an der Seite selbst erkennen könnten. Für Betreiber ist es eine ungenutzte, kostenlose Absicherung.

Wie beheben Sie das?#

Setzen Sie den Header serverseitig, CMS-unabhängig:

  • Nginx: add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
  • Apache: Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
  • Node/Express: res.setHeader('Permissions-Policy', 'camera=(), microphone=(), geolocation=()') oder per helmet.

Gehen Sie dabei funktionsweise vor: Listen Sie zuerst auf, welche Browser-Funktionen Ihre Seite tatsächlich aktiv nutzt (z. B. Kamera für ein Video-Upload-Feature). Alle nicht benötigten Funktionen sperren Sie mit leeren Klammern (). Wird eine Funktion nur für die eigene Domain gebraucht, erlauben Sie sie gezielt mit (self), etwa geolocation=(self). Prüfen Sie nach dem Setzen, dass tatsächlich genutzte Funktionen — etwa eine Kartenintegration mit Standortabfrage — weiterhin funktionieren.

Fazit#

Die Permissions-Policy ist ein einfacher, aber oft übersehener Baustein: Sie sperrt explizit, was Ihre Seite ohnehin nicht braucht, und verkleinert damit die Angriffsfläche für eingeschleusten oder eingebetteten Fremdcode — ohne Aufwand für Funktionen, die Sie tatsächlich nutzen.

Häufige Fragen

Was regelt die Permissions-Policy?

Die Permissions-Policy legt fest, welche browserseitigen Funktionen — etwa Kamera, Mikrofon, Standort oder Zahlungs-APIs — auf einer Website und in eingebetteten iframes genutzt werden dürfen.

Wie hieß die Permissions-Policy früher?

Der Header war ursprünglich unter dem Namen Feature-Policy bekannt. Permissions-Policy ist der aktuelle, weiterentwickelte Nachfolgestandard mit teils angepasster Syntax.

Warum sollte ich Funktionen sperren, die ich gar nicht nutze?

Weil eingeschleuster Fremdcode oder ein eingebettetes Drittanbieter-Skript sonst versuchen könnte, ungenutzte, aber technisch verfügbare Funktionen wie Kamera oder Standort zu missbrauchen. Eine explizite Sperre verhindert das von vornherein.

Betrifft die Permissions-Policy auch eingebettete iframes?

Ja, sie gilt sowohl für die Hauptseite als auch für über iframe eingebettete Inhalte. Eingebettete Drittanbieter-Inhalte erhalten dadurch nur genau die Rechte, die ihnen explizit zugestanden werden.

EverAudit Redaktion

Fachredaktion für Web-Qualität, Barrierefreiheit und DSGVO. Wir prüfen jeden Ratgeber gegen die Kriterien unserer Audit-Engine.