Subresource Integrity (SRI)
Was ist Subresource Integrity (SRI)?
Subresource Integrity (SRI)Browser-Mechanismus, der den kryptografischen Hash eines von Dritten geladenen Skripts oder Stylesheets vor der Ausführung prüft und manipulierte Dateien blockiert.
Subresource Integrity, 2016 als W3C-Recommendation standardisiert, wird über ein integrity-Attribut an script- oder link-Tags konfiguriert, das einen oder mehrere Base64-codierte SHA-256/384/512-Digests der erwarteten Datei enthält. Der Browser lädt die Ressource, berechnet den Digest neu und verweigert die Ausführung oder Anwendung, wenn keiner der angegebenen Hashes passt; mehrere durch Leerzeichen getrennte Hashes erlauben einer Seite, verschiedene bekanntermaßen unbedenkliche Versionen zu akzeptieren. Da SRI die genauen Bytes im Voraus kennen muss, schützt es statische, versionsfest gepinnte Assets und nicht dynamisch erzeugte.
SRI ist die primäre clientseitige Abwehr gegen CDN-Kompromittierungen und gekaperte Drittskripte wie die Magecart-Familie. Der Polyfill.io-Angriff zeigt, warum das wichtig ist: Nachdem im Februar 2024 ein neuer Eigentümer die Domain cdn.polyfill.io erworben hatte, begann das CDN, Payloads auszuliefern, die mobile Nutzer auf Betrugsseiten umleiteten — entdeckt von Sansec am 25. Juni 2024 und mit über 100.000 betroffenen Websites (erfasst als CVE-2024-38526). Jede Seite, die einen integrity-Hash gepinnt hatte, hätte die veränderte Datei sofort blockiert, weil der Digest nicht mehr übereinstimmte.
SRI arbeitet zusammen mit CSP und dem crossorigin-Attribut und sollte mit Versions-Pinning sowie automatisierter Hash-Neuerzeugung in der Build-Pipeline kombiniert werden, damit Code und Digest nie auseinanderdriften.
flowchart TD
A["Browser parst Tag<br/>mit integrity-Attribut"] --> B[Ressource vom CDN laden]
B --> C[SHA-256/384/512-Digest berechnen]
C --> D{Digest passt zu einem<br/>gelisteten Hash?}
D -->|Ja| E[Ressource ausführen / anwenden]
D -->|Nein — manipuliert oder ausgetauscht| F[Blockieren und Fehler auslösen]● Beispiele
- 01
'<script src="https://cdn.example.com/lib.js" integrity="sha384-..." crossorigin="anonymous"></script>'.
- 02
CSP-Direktive 'require-sri-for script style' (wo unterstützt), um SRI für alle Subressourcen zu erzwingen.
● Häufige Fragen
Was ist Subresource Integrity (SRI)?
Browser-Mechanismus, der den kryptografischen Hash eines von Dritten geladenen Skripts oder Stylesheets vor der Ausführung prüft und manipulierte Dateien blockiert. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Subresource Integrity (SRI)?
Browser-Mechanismus, der den kryptografischen Hash eines von Dritten geladenen Skripts oder Stylesheets vor der Ausführung prüft und manipulierte Dateien blockiert.
Wie schützt man sich gegen Subresource Integrity (SRI)?
Schutzmaßnahmen gegen Subresource Integrity (SRI) kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Subresource Integrity (SRI)?
Übliche alternative Bezeichnungen: SRI.