Subresource-Integrity-Hash
Subresource Integrity Hash
Berechnet das Subresource-Integrity-Attribut (sha256/384/512) für ein Skript oder Stylesheet, das Sie einfügen oder ablegen.
Ein `<script src>`, das auf ein CDN zeigt, ist eine Dauererlaubnis für dieses CDN, beliebigen Code in den Browsern Ihrer Nutzer auszuführen. Ein Subresource-Integrity-Attribut widerruft sie: Der Browser weigert sich, eine Datei auszuführen, deren Hash nicht mit dem übereinstimmt, den Sie festgelegt haben.
Genau die Datei ablegen, die ausgeliefert wird
Das Skript oder Stylesheet, das Sie ausliefern werden. Es wird unverändert gehasht.
Gehasht mit WebCrypto in Ihrem Browser — derselbe Digest, gegen den der Browser später prüft. Ein URL-Feld gibt es bewusst nicht: eine entfernte Datei von dieser Seite aus zu holen, um sie zu hashen, würde entweder an CORS scheitern oder zu einem SSRF-Vektor werden, und ein Browser kann einen Host nicht auflösen und ihn dann festnageln, wie ein Server es kann. Legen Sie die Datei ein, die Sie tatsächlich ausliefern.
So funktioniert es
Geben Sie ihm die Datei oder die URL
Legen Sie genau die Datei ab, die Sie ausliefern werden, oder rufen Sie eine URL ab. Der Hash geht über die Bytes, eine Datei und eine URL, die sich um einen Zeilenumbruch unterscheiden, ergeben also unterschiedliche Attribute.
Kopieren Sie das ganze Attribut
Die Ausgabe ist `integrity="sha384-…"`. Fügen Sie es zusammen mit `crossorigin="anonymous"` in das Tag ein – ohne das ist eine Cross-Origin-Ressource undurchsichtig, und die Integrität kann nicht geprüft werden.
Fixieren Sie eine Version, kein bewegliches Tag
Ein Integrity-Attribut gegen eine `@latest`-URL bricht die Website an dem Tag, an dem das CDN veröffentlicht. Zeigen Sie auf eine exakte Version und aktualisieren Sie beides zusammen.
Häufige Fragen
Welchen Algorithmus sollte ich verwenden?
sha384 ist die übliche Wahl und das, was die meisten CDNs veröffentlichen. sha256 wird akzeptiert und sha512 ist stärker, aber der Unterschied ist nicht die Schwachstelle in diesem Design – die falsche Version zu fixieren ist es.
Das Skript lädt nicht mehr, seit ich es hinzugefügt habe.
Fast immer eines von drei Dingen: Die Datei hat sich auf dem CDN geändert, `crossorigin="anonymous"` fehlt, oder der Hash wurde von einem anderen Build genommen als dem, der ausgeliefert wird (etwa eine minifizierte gegenüber einer unminifizierten Datei).
Schützt SRI vor einem kompromittierten Skript, das von Anfang an feindlich war?
Nein. Es garantiert, dass Sie die Bytes bekommen, die Sie festgelegt haben, mehr nicht. War die festgelegte Version bereits mit einer Hintertür versehen, liefert SRI die Hintertür jedes Mal getreu aus.
Eingabe aus
Datei-Prüfsumme
File Checksum
Hasht Dateien beliebiger Größe in einem Streaming-Durchlauf und vergleicht das Ergebnis mit einem eingefügten Erwartungswert – ohne Upload, komplett im Browser.
CSP-Builder
CSP Builder
Baut eine Content-Security-Policy aus einem geführten Formular oder aus einem Report und erklärt jede Direktive.
Passwort-Generator
Password Generator
Erzeugt zufällige Passwörter mit Länge, Zeichensatz und Regeln für verwechselbare Zeichen, bei Bedarf in Masse – ohne Upload, komplett im Browser.
Passphrasen-Generator
Passphrase Generator
Baut eine Passphrase im Diceware-Stil aus einer Wortliste und zeigt die Entropie in Bit.
Danach
Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.
CSP-Builder
CSP Builder
Baut eine Content-Security-Policy aus einem geführten Formular oder aus einem Report und erklärt jede Direktive.
Datei-Prüfsumme
File Checksum
Hasht Dateien beliebiger Größe in einem Streaming-Durchlauf und vergleicht das Ergebnis mit einem eingefügten Erwartungswert – ohne Upload, komplett im Browser.
Sicherheitsheader-Scan
Security Header Scan
Benotet die HSTS-, CSP-, Frame-, Referrer- und Permissions-Header einer Website und zeigt, was zu ergänzen ist.
Verdächtige URL prüfen
Suspicious URL Check
Untersucht die Form eines Links, bevor Sie ihn öffnen – ähnlich aussehende Zeichen, IP-Adressen als Host, @-Tricks, tiefe Subdomains, ungewöhnliche Ports, Kurzlink-Dienste – und verfolgt auf Wunsch seine Weiterleitungen und schlägt das Registrierungsdatum der Domain nach. Keine Reputationsdatenbank.
Base64 kodieren und dekodieren
Base64 Encoder & Decoder
Kodiert und dekodiert Base64 und Base64URL für Text oder Dateien und behandelt UTF-8 korrekt.
Datenleck-Prüfung
Breach Check
Prüft, ob ein Passwort in den Leak-Daten von Have I Been Pwned auftaucht, und sendet dazu nur die ersten fünf Zeichen seines SHA-1-Hashes aus dem Browser (k-Anonymität).