Zum Inhalt
Website-Checkvon pandaworks

← Alle Punkte · Sicherheit

Subresource Integrity für Fremdressourcen

Was geprüft

Geprüft werden Skripte und Stylesheets im HTML, die von fremden Hosts geladen werden, auf das Attribut integrity (Subresource Integrity, SRI: eine Prüfsumme der erwarteten Datei). Als eigen gilt dieselbe registrierbare Domain, also etwa beispiel.de samt Subdomains. Fremdressourcen über http:// bewertet der Punkt „Gemischte Inhalte“; gibt es keine Fremdressourcen, trifft dieser Punkt nicht zu.

Wie relevant

Mittel, wenn integrity ohne crossorigin gesetzt ist, weil der Browser die Ressource dann blockiert. Niedrig, wenn integrity bei Fremdressourcen über https:// fehlt: Das Restrisiko ist ein kompromittierter Fremdhost, und viele Fremddienste lassen SRI technisch nicht zu.

Warum

Wird eine Datei beim Fremdanbieter manipuliert, läuft der veränderte Code auf Ihrer Seite mit allen Rechten. Mit integrity lädt der Browser nur die Datei, deren Prüfsumme passt, und verweigert jede veränderte Fassung.

Wie beheben

Ergänzen Sie bei versionierten, unveränderlichen Dateien (etwa einer Bibliothek mit fester Versionsnummer im Pfad) integrity und crossorigin="anonymous". Viele CDNs zeigen die Prüfsumme direkt an. Alternativ legen Sie die Datei auf den eigenen Server, dann entfällt die Fremdabhängigkeit.

Nebenwirkung: Bei Dateien, die der Anbieter laufend ändert (Statistik-Tags, Karten-APIs, Schrift-Stylesheets), bricht integrity die Einbindung beim nächsten Update; setzen Sie es dort nicht. Fehlt crossorigin, blockiert der Browser die Datei sofort. Prüfen Sie nach dem Setzen die Browserkonsole auf „integrity“-Meldungen.

WordPress: Plugins binden Fremdskripte meist ohne integrity ein und erlauben keine Änderung. Prüfen Sie, ob das Plugin eine Option für lokale Dateien bietet, oder laden Sie Bibliotheken über WordPress selbst statt über ein CDN.

Codebeispiel

HTML

<script src="https://cdn.jsdelivr.net/npm/beispiel-bibliothek@1.2.3/dist/app.min.js"
        integrity="sha384-PRÜFSUMME"
        crossorigin="anonymous"></script>

Prüfsumme erzeugen

openssl dgst -sha384 -binary app.min.js | openssl base64 -A
# Ergebnis mit dem Präfix sha384- in integrity eintragen

Weiterführende Quellen

Quellen der Methodik

  • docs/SCORING.md — Status und Schweregrade (§2), Kategoriescore und Abdeckung (§3), Gesamtwert (§4), keine Doppelabzüge (§5), Prüfkatalog mit Gewichten (§6), Versionierung (§8), Formulierungsregeln (§9), bewusst nicht geprüft (§10)
  • docs/KALIBRIERUNG.md — Abgleich der Schwerefaktoren und Kappen mit externen Ankern (Web Almanac, Lighthouse, MDN HTTP Observatory, SSL Labs), Entscheidung scoring@1.4.0