HTTP Permissions-Policy bluetooth

Typ

Die bluetooth-Direktive steuert den Zugriff auf die Web Bluetooth API zum Verbinden mit Bluetooth Low Energy Geräten.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Bluetooth-Verbindungen initiieren dürfen.

http
Permissions-Policy: bluetooth=(self)
Permissions-Policy: bluetooth=(self "https://iot-platform.com")
Permissions-Policy: bluetooth=()

Direktiven

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

self
Erlaubt Bluetooth-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 Bluetooth-Zugriff erhalten. Für IoT-Plattformen und Device-Management.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für IoT-Plattformen, Fitness-Apps und Smart-Home-Systeme.

IoT-Dashboard mit Bluetooth-Steuerung

Eine Progressive Web App für Smart-Home-Steuerung erlaubt Bluetooth-Zugriff für Geräteverbindungen.

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

<!DOCTYPE html>
<html>
<head><title>Smart Home Dashboard</title></head>
<body>
  <button id="connect">Connect to Light Bulb</button>
  <script>
    document.getElementById('connect').addEventListener('click', async () => {
      const device = await navigator.bluetooth.requestDevice({
        filters: [{services: ['battery_service']}]
      });
      const server = await device.gatt.connect();
    });
  </script>
</body>
</html>

Embedded Device-Manager mit Bluetooth

Eine Plattform erlaubt einem eingebetteten Device-Manager-Widget Bluetooth-Zugriff für Geräte-Pairing.

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

<!DOCTYPE html>
<html>
<head><title>IoT Platform</title></head>
<body>
  <iframe src="https://device-manager.iot-platform.com/widget"
          allow="bluetooth"></iframe>
</body>
</html>

REST-API ohne Hardware-Zugriff

Ein API-Endpunkt deaktiviert alle Hardware-APIs inklusive Bluetooth für maximale Sicherheit.

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

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

Vorteile für die Systemarchitektur

  • Verhindert unautorisierten Bluetooth-Zugriff durch eingebettete Drittanbieter-Inhalte
  • Reduziert Sicherheitsrisiken durch Kontrolle über Hardware-API-Zugriff
  • Ermöglicht granulare Freigabe für vertrauenswürdige IoT-Plattformen
  • Schützt vor Bluetooth-basierten Tracking- und Fingerprinting-Angriffen

Spezifikation

Definiert in der W3C Web Bluetooth API Spezifikation. Browser-Support limitiert auf Chromium-basierte Browser und erfordert HTTPS.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header