it-swarm.com.de

Was sind die Integritäts- und Crossorigin-Attribute?

Bootstrapcdn hat kürzlich die Links geändert. Es sieht jetzt so aus:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" 
rel="stylesheet" 
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" 
crossorigin="anonymous">

Was bedeuten die Attribute integrity und crossorigin? Wie wirken sie sich auf das Laden des Stylesheets aus?

317
New user

Beide Attribute wurden zu Bootstrap CDN hinzugefügt, um Subresource Integrity zu implementieren.

Die Subressourcenintegrität definiert einen Mechanismus, mit dem Benutzerprogramme überprüfen können, ob eine abgerufene Ressource ohne unerwartete Manipulation bereitgestellt wurde Referenz

Mit dem Integritätsattribut kann der Browser die Dateiquelle überprüfen, um sicherzustellen, dass der Code niemals geladen wird, wenn die Quelle manipuliert wurde.

Das Crossorigin-Attribut ist vorhanden, wenn eine Anforderung mit 'CORS' geladen wird. Dies ist nun eine Voraussetzung für die SRI-Überprüfung, wenn sie nicht aus demselben Ursprung geladen wird. Mehr Infos zu crossorigin

Weitere Informationen zur Implementierung von Bootstrap CDNs

219
jim.taylor.1974

Integrität - Definiert den Hash-Wert einer Ressource (wie einer Prüfsumme), die abgeglichen werden muss, damit der Browser sie ausführt. Der Hash stellt sicher, dass die Datei nicht geändert wurde und die erwarteten Daten enthält. Auf diese Weise lädt der Browser keine anderen (z. B. schädlichen) Ressourcen. Stellen Sie sich eine Situation vor, in der Ihre JavaScript-Dateien auf dem CDN gehackt wurden und es keine Möglichkeit gab, dies zu erkennen. Das Integritätsattribut verhindert, dass nicht übereinstimmender Inhalt geladen wird.

Ungültige SRI werden blockiert (Chrome-Entwicklertools), unabhängig von der Herkunft. Unterhalb des NON-CORS-Falls, wenn das Integritätsattribut nicht übereinstimmt:

enter image description here

Integrität kann berechnet werden mit: https://www.srihash.org/ oder durch Eingabe in die Konsole ( link ):

openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A

crossorigin - definiert Optionen, die verwendet werden, wenn die Ressource von einem Server in einem anderen Origin geladen wird. (Siehe CORS (Cross-Origin Resource Sharing) hier: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Es ändert effektiv die vom Browser gesendete HTTP-Anfrage. Wenn das Attribut "crossorigin" hinzugefügt wird, wird Origin: <Origin> Schlüssel-Wert-Paar zur HTTP-Anforderung hinzugefügt (siehe unten).

enter image description here

crossorigin kann entweder auf "anonymous" oder "use-credentials" gesetzt werden. Beides führt dazu, dass Origin: zur Anfrage hinzugefügt wird. Letzteres stellt jedoch sicher, dass die Anmeldeinformationen überprüft werden. Kein Crossorigin-Attribut im Tag führt zum Senden einer Anfrage ohne das Schlüssel-Wert-Paar Origin.

Hier ist ein Fall, wenn Sie "use-credentials" vom CDN anfordern:

<script 
        src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
        integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" 
        crossorigin="use-credentials"></script>

Ein Browser kann die Anfrage abbrechen, wenn crossorigin falsch eingestellt ist.

enter image description here

Links
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link

Blogs
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity

77
Witold Kaczurba