Zum Hauptinhalt springen

Content Security Policy blockiert K3

Symptome​

Nach der Einbettung des K3-Konfigurators erscheinen in der Browser-Konsole Fehlermeldungen wie:

Creating a worker from 'blob:https://www.example.com/...' violates the
following Content Security Policy directive: "script-src 'self' ...".
Note that 'worker-src' was not explicitly set, so 'script-src' is used
as a fallback. The action has been blocked.

Der Konfigurator lädt nicht vollständig oder zeigt Fehler an.

Ursache​

Viele Websites verwenden Content Security Policy (CSP) als Sicherheitsmaßnahme. CSP definiert, welche Ressourcen (Scripts, Styles, Bilder etc.) von welchen Quellen geladen werden dürfen.

K3 verwendet Web Worker für Hintergrundoperationen (z.B. 3D-Rendering, Berechnungen), um die Benutzeroberfläche nicht zu blockieren. Diese Worker werden als sogenannte Blob-URLs erstellt – eine gängige Technik in modernen Web-Anwendungen.

Wenn die CSP der Website blob: nicht explizit erlaubt, blockiert der Browser die Erstellung dieser Worker.

Lösung​

Die Content Security Policy muss um blob: erweitert werden.

Empfohlene Variante (spezifisch für Worker)​

Falls Ihre CSP worker-src separat definieren kann:

worker-src 'self' blob:;

Diese Variante ist sicherer, da sie blob: nur für Web Worker erlaubt.

Alternative Variante (in script-src)​

Falls worker-src nicht separat definiert werden kann, muss blob: in script-src ergänzt werden:

script-src 'self' https://k3.objectcode.de blob:;
Wo wird CSP konfiguriert?

Die Content Security Policy wird typischerweise an einer dieser Stellen konfiguriert:

  • HTTP-Header auf dem Webserver (Apache, Nginx, etc.)
  • Meta-Tag im HTML-Header der Website
  • Shop-System oder CMS-Einstellungen (z.B. Shopware, WordPress Plugins)
  • Hosting-Provider Sicherheitseinstellungen

Wenden Sie sich an Ihren Webmaster oder Hosting-Provider, wenn Sie unsicher sind.

Sicherheitshinweis​

Ist blob: ein Sicherheitsrisiko?

Das Hinzufügen von blob: erlaubt dem Browser, ausführbaren Code aus binären Datenobjekten zu erstellen, die im Arbeitsspeicher liegen.

Wenn Ihre CSP bereits folgende Direktiven enthält, erhöht blob: das Risiko nicht signifikant:

DirektiveBedeutungRisiko
'unsafe-inline'Erlaubt Inline-Scripts im HTMLHöher
'unsafe-eval'Erlaubt eval() und String-zu-Code-UmwandlungHöher
blob:Erlaubt Blob-URLs für WorkerNiedriger

Die meisten modernen Web-Anwendungen mit 3D-Rendering oder komplexen Berechnungen benötigen Web Worker und damit blob:-Unterstützung.

Vollständiges CSP-Beispiel​

Eine minimale CSP für K3 könnte so aussehen:

default-src 'self';
script-src 'self' https://k3.objectcode.de 'unsafe-inline' 'unsafe-eval';
worker-src 'self' blob:;
style-src 'self' 'unsafe-inline';
img-src 'self' https://k3.objectcode.de data: blob:;
connect-src 'self' https://k3.objectcode.de https://api.objectcode.de;
font-src 'self' https://k3.objectcode.de;
Testen Sie Ihre CSP

Sie können CSP-Probleme in den Browser-Entwicklertools (F12) unter "Console" oder "Network" sehen. Blockierte Ressourcen werden dort mit entsprechenden Fehlermeldungen angezeigt.