Subresource Integrity in Drupal konfigurieren

SRI-Hashes in Drupals *.libraries.yml Asset-System integrieren — Hash-Generierung, crossorigin-Attribute und Build-Time-Automatisierung.

Drupal · Schritt für Schritt

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.

Hash generieren
TerminalHash
# 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
libraries.yml (empfohlen)
mytheme.libraries.ymlEmpfohlen
# 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
Twig-Template
Twig-TemplateManuell
{# 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.

Browser DevToolsVerifizierung
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.

PCI DSS 4.0Req 6.4.3 — Script-Inventar und Integritätsprüfung auf Zahlungsseiten
NIS2Art. 21(e) — Sicherheit der Lieferkette, Schutz vor Drittanbieter-Kompromittierung
BSIIntegritätsprüfung externer Ressourcen

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.