Subresource Integrity in Drupal konfigurieren
SRI-Hashes in Drupals *.libraries.yml Asset-System integrieren — Hash-Generierung, crossorigin-Attribute und Build-Time-Automatisierung.
Subresource Integrity in Drupal
Subresource Integrity (SRI) schützt gegen kompromittierte CDNs und Man-in-the-Middle-Angriffe. SRI ist kein HTTP-Header, sondern ein HTML-Attribut: Sie fügen jedem externen Script und Stylesheet ein integrity-Attribut mit einem kryptographischen Hash hinzu. Im Wolf-Agents Web Security Check bringt SRI 15 von 166 Punkten.
In Drupal integrieren Sie SRI über das *.libraries.yml Asset-System. Externe Bibliotheken erhalten dort integrity- und crossorigin-Attribute. Für Inline-Einbindungen in Twig-Templates setzen Sie die Attribute manuell.
Der Wolf-Agents Web Security Check analysiert automatisch alle externen Scripts und Stylesheets Ihrer Drupal-Seite und prüft, ob integrity-Attribute vorhanden und korrekt sind. Fehlende SRI-Hashes werden im Scan-Ergebnis einzeln aufgelistet.
Implementierung
Generieren Sie den SHA-384-Hash und integrieren Sie ihn in die libraries.yml Ihres Themes oder Moduls.
# SRI-Hash generieren
openssl dgst -sha384 -binary /path/to/file.js | openssl base64 -A
# Ausgabe: oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/...
# Oder per URL
curl -s https://cdn.example.com/lib.js | openssl dgst -sha384 -binary | openssl base64 -A# themes/custom/mytheme/mytheme.libraries.yml
external-lib:
js:
https://cdn.example.com/lib.js:
type: external
minified: true
attributes:
integrity: sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/...
crossorigin: anonymous
css:
theme:
https://cdn.example.com/styles.css:
type: external
attributes:
integrity: sha384-AbCdEfGhIjKlMnOpQrStUvWxYz...
crossorigin: anonymous{# Manuell in Twig-Template (wenn libraries.yml nicht möglich) #}
<script
src="https://cdn.example.com/lib.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9..."
crossorigin="anonymous">
</script>Verifizierung
SRI kann nicht per curl -sI geprüft werden — prüfen Sie den HTML-Quellcode im Browser.
drush cr
# HTML-Quellcode prüfen — integrity-Attribut muss vorhanden sein
# Browser DevTools → Sources → Scripts mit integrity prüfen
# Console: SRI-Fehler erscheinen als rote Fehlermeldungen
# Im HTML-Quellcode prüfen:
# integrity="sha384-..." crossorigin="anonymous"Häufige Fehler
Hash-Mismatch nach Bibliotheks-Update
Wenn Sie eine externe Bibliothek updaten, ändert sich der Hash. Die alte libraries.yml-Konfiguration blockiert die neue Datei. Aktualisieren Sie den Hash bei jedem Library-Update.
crossorigin-Attribut fehlt
Für CDN-gehostete Ressourcen ist crossorigin: anonymous in der libraries.yml Pflicht. Ohne dieses Attribut scheitert der SRI-Check.
Drupal-Aggregation ändert den Hash
Drupals CSS/JS-Aggregation ändert Dateiinhalte und damit den Hash. SRI-Hashes funktionieren nur für nicht-aggregierte externe Ressourcen. Lokale Dateien, die aggregiert werden, brauchen kein SRI.
Compliance-Relevanz
SRI stellt die Integrität externer Ressourcen sicher und ist besonders für E-Commerce-Seiten mit Zahlungsabwicklung unverzichtbar.
Zusammenfassung
SRI in Drupal wird über das *.libraries.yml Asset-System integriert. Externe Bibliotheken erhalten integrity- und crossorigin-Attribute direkt in der YAML-Konfiguration. Aktualisieren Sie die Hashes bei jedem Library-Update und beachten Sie, dass Drupals CSS/JS-Aggregation nicht mit SRI kompatibel ist — SRI funktioniert nur für nicht-aggregierte externe Ressourcen.
Wie steht Ihre Domain bei Subresource Integrity?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.