Zum Inhalt springen

Prüfregel · RSC-SEC-097

Fremde Skripte ohne Subresource Integrity

SicherheitSchweregrad: MittelCWE-353OWASP A08-2021

Findet `<script src>` und `<link rel=stylesheet>` von öffentlichen CDNs (cdnjs, jsDelivr, unpkg, jQuery, Bootstrap …) ohne `integrity`-Attribut.

Warum das zählt

Ein Skript von einem fremden CDN läuft mit allen Rechten eurer Seite: Es sieht Formulareingaben, Sitzungen und Zahlungsfelder. Ihr vertraut damit nicht nur der Bibliothek, sondern jedem, der die Datei auf dem CDN austauschen kann — durch einen Einbruch beim Anbieter, eine übernommene Domain oder ein manipuliertes Release. Genau so lief der Angriff auf polyfill.io 2024, der über hunderttausend Seiten traf.

Subresource Integrity ist die Antwort des Browsers darauf: Ein Hash im Tag, den er vor dem Ausführen mit der geladenen Datei vergleicht. Stimmt er nicht, wird nichts ausgeführt. Für versionierte CDN-Dateien ist das eine Zeile — die meisten CDNs zeigen den fertigen Tag samt Hash an. Nicht anwendbar ist es bei Skripten, die sich selbst aktualisieren (Tag Manager, Analytics); die werden hier deshalb nicht gezählt.

Selbst nachprüfen: Quelltext öffnen und nach `<script src="https://cdn` suchen — steht im Tag kein `integrity=`, fehlt der Schutz.

Prüfstufe

Außen-Scan (anonym)

So behebt ihr es

Für jede CDN-Einbindung den SRI-Hash erzeugen (`openssl dgst -sha384 -binary datei.js | openssl base64 -A`) und als `integrity`-Attribut samt `crossorigin="anonymous"` in das Tag setzen — oder die Datei selbst hosten.

Eigene App kostenlos prüfen