Zum Inhalt springen
EUID Prüfservice & Prüfsiegel, Startseite
Website prüfen lassen

Prüfpunkt software.sri.fehltKopfzeilen und Einbettung

Wie prüft der Browser, ob ein fremdes Skript unverändert ist?

Viele Websites laden Skripte und Gestaltungsdateien von fremden Servern, etwa eine Bibliothek von einem Content Delivery Network. Subresource Integrity, kurz SRI, gibt jeder dieser Dateien eine Prüfsumme mit. Der Browser rechnet die Prüfsumme der geladenen Datei nach und führt sie nur aus, wenn beide übereinstimmen. Die Prüfung meldet jedes fremde Skript und jedes fremde Stylesheet, das ohne diese Prüfsumme eingebunden ist, mit seiner Adresse als Beleg.

polyfill.io zeigt, wie ein Besitzerwechsel zum Angriff wird

Im Februar 2024 wechselte die Domain polyfill.io den Besitzer. Im Juni meldete Sansec, dass das dort eingebundene Skript auf mehr als 100.000 Websites Schadcode einschleuste: Handybesucher landeten auf einer Seite für Sportwetten. Der Code griff nur zu bestimmten Stunden und ließ Administratoren aus. Wer auf der eigenen Seite nachsah, bekam wenig zu sehen, und auf dem eigenen Server änderte sich keine Datei.

Eine fremde Datei wirkt auf Ihrer Seite wie eine eigene

Ein Skript, das Ihre Seite einbindet, darf alles, was Ihre Seite darf: Formulare auslesen, Inhalte verändern, Eingaben an einen anderen Server schicken. Das gilt auch, wenn die Datei auf dem Server eines Anbieters liegt. Ändert sich die Datei dort, weil der Anbieter angegriffen wurde oder eine Domain den Besitzer gewechselt hat, bekommen Ihre Besucher die geänderte Fassung, ohne dass auf Ihrem Server etwas passiert ist. Mit SRI steht in Ihrem Quelltext, wie die Datei aussehen muss. Weicht sie ab, blockiert der Browser sie und meldet das in der Entwicklerkonsole.

Gemessen werden Skripte und Stylesheets von anderen Servern

Die Prüfung liest den Quelltext jeder Seite des Laufs. Sie nimmt jedes script-Element mit einer Adresse und jedes link-Element mit rel="stylesheet", dessen Adresse auf einen anderen Server zeigt. Dateien vom eigenen Server und von seinen Unterdomänen zählen als eigene und bleiben außen vor. Fehlt einer fremden Datei das Attribut integrity, nennt der Bericht die Zahl dieser Dateien und bis zu fünf Adressen. So sehen Sie und Ihre Agentur genau, welche Einbindung gemeint ist.

Prüfsumme und crossorigin gehören zusammen

Das Attribut integrity enthält das Verfahren und die Prüfsumme, etwa sha384- gefolgt von 64 Zeichen. Dazu kommt crossorigin="anonymous": erst damit darf der Browser eine Datei von einem anderen Server überhaupt nachrechnen. Die Prüfsumme gilt für genau eine Fassung der Datei. Deshalb passt SRI zu Dateien mit fester Versionsnummer in der Adresse, etwa jquery-3.7.1.min.js. Viele Anbieter nennen die Prüfsumme gleich neben der Adresse zum Kopieren.

Dateien, die sich laufend ändern, kommen vom eigenen Server

Manche Dateien ändert der Anbieter laufend oder liefert je nach Browser eine andere Fassung. Ein Beispiel ist das Stylesheet von Google Fonts: es unterscheidet sich je nach Browser, eine feste Prüfsumme passt dort nie. Solche Dateien legt Ihre Agentur am besten auf Ihren eigenen Server; bei Schriften geht das ohne Einbußen, und die Adressen Ihrer Besucher bleiben dabei auf Ihrem Server. Für Skripte von Zahlungs- oder Statistikdiensten gibt der Anbieter vor, wie sie einzubinden sind. Dort entscheiden Sie mit Ihrer Agentur, welchen Anbietern Sie diesen Zugriff geben.

Beispiele

Bibliothek von einem fremden Server

Nicht erfüllt
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
Erfüllt
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
  integrity="sha384-1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxAvs/HgeFs"
  crossorigin="anonymous"></script>

Die Prüfsumme gehört zu genau dieser Datei (jQuery 3.7.1). Ändert sich auch nur ein Zeichen, lädt der Browser sie nicht.

So gehen Sie es an

  1. Lassen Sie Ihre Agentur die Adressen aus dem Bericht durchgehen: welche Datei stammt von welchem Anbieter, und wozu dient sie?
  2. Für Dateien mit fester Version ergänzt sie integrity und crossorigin="anonymous"; die Prüfsumme nennt meist der Anbieter.
  3. Schriften und Bibliotheken, die sich je nach Browser oder laufend ändern, legt sie auf Ihren eigenen Server.
  4. Nach jedem Update einer eingebundenen Bibliothek gehört die neue Prüfsumme mit in die Vorlage, sonst lädt der Browser die neue Datei nicht.
  5. Lassen Sie die Website danach neu messen. Der Bericht zeigt, welche fremden Dateien noch ohne Prüfsumme geladen werden.

Tipps aus der Praxis

  • Der fremde Server muss die Datei mit der Kopfzeile Access-Control-Allow-Origin ausliefern, sonst lehnt der Browser sie ab. Testen Sie jede neue Prüfsumme einmal im Browser.
  • Bei einer abgelehnten Datei löst der Browser ein Fehlerereignis aus. Damit kann Ihre Agentur eine Kopie vom eigenen Server nachladen.
  • Für Zahlungsseiten verlangt der Kartenstandard PCI DSS seit dem 31. März 2025, dass Skripte freigegeben, auf Unversehrtheit geprüft und auf Veränderung überwacht werden.

Mehr zu diesem Thema

Weiter in der Cybersicherheit

Dieser Prüfpunkt gehört zur Cybersicherheit, Unterthema Kopfzeilen und Einbettung. Gemessen wird er im Prüfbereich Aktualität. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren.

  • Siegel Digitale Barrierefreiheit
  • Siegel Daten & Recht
  • Siegel Technische Qualität
  • Siegel Digital Excellence
  • Siegel Cyberversicherung

Geprüft. Für eine bessere digitale Zukunft.euid.com