integridad : define el valor hash de un recurso (como una suma de comprobación) que debe coincidir para que el navegador lo ejecute. El hash asegura que el archivo no se modificó y contiene los datos esperados. De esta forma, el navegador no cargará recursos diferentes (por ejemplo, maliciosos). Imagine una situación en la que sus archivos JavaScript fueron pirateados en el CDN, y no había forma de saberlo. El atributo de integridad impide cargar contenido que no coincide.
El SRI no válido se bloqueará (herramientas de desarrollador de Chrome), independientemente del origen cruzado. Debajo del caso NO CORS cuando el atributo de integridad no coincide:
La integridad se puede calcular usando: https://www.srihash.org/
O escribiendo en la consola ( enlace ):
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
crossorigin : define las opciones utilizadas cuando el recurso se carga desde un servidor en un origen diferente. (Ver CORS (Cross-Origin Resource Sharing) aquí: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Cambia efectivamente las solicitudes HTTP enviadas por el navegador. Si se agrega el atributo "crossorigin", resultará en agregar origen: par clave-valor <ORIGIN> en la solicitud HTTP como se muestra a continuación.
crossorigin se puede establecer en "anónimo" o "credenciales de uso". Ambos resultarán en agregar origen: en la solicitud. Sin embargo, este último garantizará que se verifiquen las credenciales. Ningún atributo de origen cruzado en la etiqueta dará como resultado el envío de una solicitud sin origen: par clave-valor.
Este es un caso cuando se solicitan "credenciales de uso" de CDN:
<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>
Un navegador puede cancelar la solicitud si el origen cruzado está configurado incorrectamente.
Enlaces
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Elemento / enlace
Blogs
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity
Attribute integrity not allowed on element link at this point.