Subresource Integrity ist ein Prüfwert im HTML, der eine fremd geladene Datei vor der Ausführung kontrolliert. Stimmt der Wert nicht, lädt der Browser die Datei nicht aus.
- Subresource Integrity
Ein Prüfwert im HTML, der eine fremd geladene Datei vor der Ausführung kontrolliert.
Beispiel: „Mit Subresource Integrity fällt eine ausgetauschte Bibliothek sofort auf.“Auch: SRI. Der Wert steht im Attribut
integrityund ist ein Hash der Datei, meist mit SHA-384 gebildet.Abgrenzung zur Verschlüsselung der Verbindung: HTTPS schützt den Weg. SRI prüft, ob am anderen Ende noch dieselbe Datei liegt.
Wogegen Subresource Integrity schützt
Gegen den unterwanderten Dienst am anderen Ende. Wer eine Bibliothek von einem fremden CDN einbindet, führt bei jedem Seitenaufruf Code aus, über den er keine Kontrolle hat; wird dort etwas ausgetauscht, läuft es sofort auf allen Seiten, die darauf verweisen. Genau dieser Fall ist mehrfach eingetreten, siehe Supply-Chain-Angriff.
Wie der Prüfwert entsteht
Aus der Datei selbst. Ein Aufruf bildet den Hash und kodiert ihn; das Ergebnis wandert in das Attribut, zusammen mit crossorigin="anonymous". Die meisten großen Bibliotheken liefern den fertigen Ausschnitt auf ihrer Seite gleich mit, sodass die Rechnung entfällt.
Warum SRI bei manchen Diensten nicht funktioniert
Weil sich die Datei dort absichtlich ändert. Dienste, die ihre Auslieferung an den Browser anpassen oder laufend aktualisieren, liefern bei jedem Abruf etwas anderes; ein fester Prüfwert passt dann nie. Für solche Fälle bleibt nur die Entscheidung, ob der Dienst dieses Vertrauen verdient, oder das Mitliefern der Datei aus dem eigenen Haus.