Permissions Policy für IIS konfigurieren

Schritt-für-Schritt-Anleitung: Browser-APIs in IIS einschränken — Kamera, Mikrofon, Geolocation und Payment per web.config oder PowerShell sperren.

IIS · Schritt für Schritt

Permissions Policy in IIS

Die Permissions Policy kontrolliert, welche Browser-APIs Ihre Website nutzen darf. Mit 10 von 166 Punkten im Wolf-Agents Web Security Check ist sie ein schnell umsetzbarer Sicherheitsgewinn. In IIS setzen Sie den Header per web.config — eine Zeile XML reicht.

Durch das Sperren ungenutzter APIs wie Kamera, Mikrofon und Geolocation verhindern Sie, dass Drittanbieter-Scripts diese APIs missbrauchen. Selbst wenn ein XSS-Angriff Code einschleust, kann dieser keine sensiblen Hardware-Funktionen aktivieren.

1 Schritt 1 von 3

Permissions-Policy Header setzen

Die restriktivste Konfiguration sperrt alle APIs mit leeren Allowlists (). Kopieren Sie diese Konfiguration als Ausgangsbasis und geben Sie nur die APIs frei, die Sie tatsächlich benötigen.

web.config Produktiv
<!-- web.config — Permissions Policy -->
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Permissions-Policy"
             value="camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), idle-detection=(), serial=(), browsing-topics=()" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>
PowerShell Alternative
# PowerShell — Permissions Policy setzen
$sitePath = 'MACHINE/WEBROOT/APPHOST/Default Web Site'
$filter = "system.webServer/httpProtocol/customHeaders"

Add-WebConfigurationProperty -pspath $sitePath -filter $filter \
  -name "." -value @{
    name  = 'Permissions-Policy'
    value = 'camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=()'
  }
2 Schritt 2 von 3

Direktiven an die Anwendung anpassen

Wenn Ihre Anwendung Geolocation oder Payment nutzt, geben Sie die jeweilige API für self frei. Die Syntax geolocation=(self) erlaubt nur der eigenen Domain den Zugriff — eingebettete iframes bleiben gesperrt.

web.config Angepasst
<!-- web.config — Permissions Policy mit Ausnahmen -->
<!-- Beispiel: Geolocation für eigene Domain erlauben -->
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Permissions-Policy"
             value="camera=(), microphone=(), geolocation=(self), payment=(self), usb=(), bluetooth=(), idle-detection=(), serial=()" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>
3 Schritt 3 von 3

Header verifizieren

Prüfen Sie den Header nach dem Deployment. IIS lädt web.config-Änderungen automatisch ohne Neustart.

PowerShell / Terminal Verifizieren
# Permissions-Policy prüfen
curl -sI https://ihre-domain.de | Select-String "Permissions-Policy"

# Erwartete Ausgabe:
# Permissions-Policy: camera=(), microphone=(), geolocation=(), ...

Häufige Fehler

Syntax-Fehler bei Allowlists

Die Permissions-Policy-Syntax unterscheidet sich von CSP. Richtig: camera=(). Falsch: camera 'none'. Die API-Namen verwenden Bindestriche, nicht Unterstriche.

Header zu lang für eine Zeile

Die web.config erlaubt keine Zeilenumbrüche im value-Attribut. Halten Sie die Policy kompakt oder teilen Sie auf mehrere Permissions-Policy-Header auf (nur mit HTTP/2+).

API nach Sperre nicht verfügbar

Eine gesperrte API kann per JavaScript nicht mehr angefragt werden. Testen Sie Ihre Anwendung gründlich, bevor Sie APIs sperren, die möglicherweise von Drittanbieter-Widgets genutzt werden.

Compliance-Relevanz

NIS2 fordert technische Maßnahmen zum Schutz personenbezogener Daten. Die Permissions Policy verhindert, dass Browser-APIs wie Kamera und Mikrofon missbraucht werden. DSGVO Artikel 25 (Privacy by Design) unterstützt die restriktive Konfiguration. 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.