Content Security Policy (CSP) und Custom Scripts
Die Content Security Policy (CSP) ist ein Web-Sicherheitsstandard, der steuert, welche Skripte, Stylesheets und andere Ressourcen eine Seite laden oder ausführen darf. Eine strikte CSP ist der wirksamste Schutz gegen Cross-Site Scripting (XSS).
Wie CSP Custom Scripts in TheFlex beeinflusst
TheFlex injiziert Custom Scripts auf Seitenebene in die WebView. Wenn die geladene Webanwendung eine CSP definiert, blockiert der Browser das injizierte Skript, sofern die Richtlinie es nicht explizit erlaubt.
Der mindestens erforderliche Eintrag, um die Cordova-Bridge von TheFlex zu erlauben:
script-src https://localhost/cordova.js
Das reicht aus, um alle Cordova-Plugins (NFC, Barcode-Scan usw.) in TheFlex zu aktivieren.
Nur das eintragen, was wirklich benötigt wird. script-src 'unsafe-inline' oder script-src * deaktivieren den CSP-Schutz vollständig und öffnen XSS-Angriffsflächen.
Wo wird die CSP gesetzt?
Die CSP wird von der Webanwendung gesetzt (z.B. vom SAP-System), nicht von TheFlex. Je nach Plattform:
- SAP S/4HANA Cloud / SAP Fiori: Die CSP wird im SAP-System konfiguriert. Siehe SAP-Hilfe-Dokumentation und den SAP Community Artikel zu CSPs in S/4HANA Cloud.
- Eigene Webanwendungen: Die CSP wird als HTTP-Response-Header oder als
<meta>-Tag im HTML gesetzt.
FAQ
Warum wird mein Custom Script in TheFlex nicht ausgeführt?
Wahrscheinlich verhindert eine aktive CSP die Ausführung, weil https://localhost/cordova.js nicht eingetragen ist. Die Browser-Konsole (per Remote Debugging erreichbar) zeigt eine CSP-Verletzungsmeldung – dort den fehlenden Eintrag identifizieren und in die Richtlinie aufnehmen.
Ist es sicher, alle Skripte freizuschalten?
Nein. Nur die wirklich notwendigen Quellen erlauben – mindestens https://localhost/cordova.js für TheFlex. Offenere Regeln wie 'unsafe-inline' oder * heben den CSP-Schutz auf und sollten vermieden werden.
Mein Skript funktioniert ohne CSP, schlägt aber nach deren Aktivierung fehl – was prüfen?
Die Browser-Konsole zeigt für jede blockierte Ressource eine Meldung wie:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src ..."
Nur die spezifisch blockierte Quelle zur Richtlinie hinzufügen.
Mehr zur Erstellung und Verwaltung von Custom Scripts im Custom Scripts Artikel.