Wie funktioniert die Implementierung von Subresource Integrity (SRI) zur Absicherung von CDN-basierten Assets?
Subresource Integrity (SRI) verhindert, dass manipulierte Dateien von einem Content Delivery Network (CDN) in den Browser des Nutzers geladen werden. Wir setzen hierbei auf kryptografische Hash-Funktionen, um die Integrität externer Ressourcen wie JavaScript-Dateien oder CSS-Stylesheets zu verifizieren.
Die technische Umsetzung erfolgt über das integrity-Attribut innerhalb des <script>- oder <link>-Tags. Der Browser berechnet beim Download der Datei den Hash-Wert des Inhalts und vergleicht diesen mit dem im Attribut hinterlegten Wert. Stimmen die Werte nicht überein, wird die Ressource aus Sicherheitsgründen nicht ausgeführt.
Die Implementierung folgt diesem technischen Ablauf:
- Hash-Generierung: Die Datei wird mit einem Algorithmus (üblicherweise SHA-384) gehasht. Dies geschieht entweder über Kommandozeilen-Tools wie OpenSSL oder automatisierte Build-Tools.
- Präfix-Zuweisung: Der resultierende Hash wird mit dem verwendeten Algorithmus präfixiert (z. B.
sha384-). - HTML-Integration: Der Wert wird im
integrity-Attribut hinterlegt. Da CDN-Anfragen grenzüberschreitend sind, muss zusätzlich dascrossorigin-Attribut aufanonymousgesetzt werden, um CORS-Richtlinien zu erfüllen.
| Attribut | Funktion | Beispielwert |
|---|---|---|
integrity | Speichert den kryptografischen Fingerabdruck der Datei | sha384-oqVuAf... |
crossorigin | Ermöglicht den Zugriff auf die Ressource via CORS | anonymous |
src / href | Pfad zur Ressource auf dem CDN | https://cdn.example.com/lib.js |
Im Rahmen unserer Strategien für Cloud & Digital Workplace integrieren wir die Generierung dieser Hashes direkt in die CI/CD-Pipeline. Dadurch wird sichergestellt, dass bei jedem Update einer Library der Hash automatisch aktualisiert wird, ohne dass manuelle Eingriffe im HTML-Code nötig sind.
Wir empfehlen, SRI nicht als optionales Feature, sondern als Standard für jede externe Ressource zu betrachten. Die manuelle Pflege von Hashes ist fehleranfällig und führt bei Versionssprüngen zu blockierten Assets. Eine automatisierte Integration in den Build-Prozess ist die einzige zuverlässige Methode, um Supply-Chain-Angriffe auf CDN-Ebene zu unterbinden, ohne die Verfügbarkeit der Anwendung zu gefährden.
Andere Fragen in dieser Kategorie
Andere Nutzer suchten auch nach:
Diese Fragen könnten Sie ebenfalls interessieren.
In welchen Szenarien ist die Implementierung von WebAssembly (Wasm) gegenüber hochoptimiertem JavaScript für rechenintensive Client-Operationen vorzuziehen?
web-designInwiefern optimiert der Einsatz von Priority Hints (`fetchpriority`) das LCP (Largest Contentful Paint)?
web-designWelche Auswirkungen haben verschiedene Garbage-Collection-Strategien in Node.js auf die Latenz von High-Throughput-APIs?
web-designWelche Auswirkungen hat die Nutzung von CSS-Containment (`contain: content`) auf den Browser-Rendering-Pipeline-Prozess?
web-designWelche Auswirkungen hat die Umstellung von HTTP/2 auf HTTP/3 (QUIC) auf das Head-of-Line-Blocking bei Web-Assets?