HTTP Permissions-Policy hid

Typ

Die hid-Direktive steuert den Zugriff auf die WebHID API zur Kommunikation mit Human Interface Devices.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die HID-Geräte verbinden dürfen.

http
Permissions-Policy: hid=(self)
Permissions-Policy: hid=(self "https://hardware-config.com")
Permissions-Policy: hid=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt HID-Zugriff nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://device-manager.example.com", die zusätzlich zum Hauptdokument HID-Zugriff erhalten. Für Hardware-Konfigurations-Tools.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Gaming-Peripherals, Hardware-Tools und Custom-Devices.

Hardware-Configuration-Tool mit HID

Ein Web-Tool für RGB-Gaming-Peripherie-Konfiguration nutzt WebHID für direkte Device-Kommunikation.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: hid=(self)

<!DOCTYPE html>
<html>
<head><title>RGB Controller</title></head>
<body>
  <button id="connect">Connect Device</button>
  <script>
    document.getElementById('connect').addEventListener('click', async () => {
      const devices = await navigator.hid.requestDevice({
        filters: [{vendorId: 0x1234}]
      });
      if (devices.length > 0) {
        const device = devices[0];
        await device.open();
        // Configure RGB settings
      }
    });
  </script>
</body>
</html>

Embedded Device-Manager

Eine Plattform erlaubt einem Hardware-Management-Widget HID-Zugriff für Firmware-Updates.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: hid=(self "https://firmware.device-manager.example.com")

<!DOCTYPE html>
<html>
<head><title>Hardware Portal</title></head>
<body>
  <iframe src="https://firmware.device-manager.example.com/updater"
          allow="hid"></iframe>
</body>
</html>

REST-API ohne Hardware-Zugriff

Ein API-Endpunkt deaktiviert alle Hardware-Device-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: hid=(), usb=(), serial=(), bluetooth=()

{
  "status": "success",
  "devices": []
}

Vorteile für die Systemarchitektur

  • Verhindert unautorisierten HID-Zugriff durch eingebettete Drittanbieter
  • Ermöglicht direkte Kommunikation mit Custom-Hardware ohne Treiber
  • Schützt vor HID-basierten Angriffen durch Policy-Kontrolle
  • Unterstützt Web-basierte Hardware-Konfigurations-Tools

Spezifikation

Definiert in der W3C WebHID API Spezifikation. Verfügbar in Chromium-basierten Browsern. Erfordert HTTPS und explizite Nutzer-Permission per Device-Picker.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header