¿Cuáles son los atributos de integridad y origen cruzado?

Resuelto New user asked hace 9 años • 0 respuestas

Bootstrapcdn cambió recientemente sus enlaces. Ahora se ve así:

<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">

¿ Qué significan los atributos integrityy crossorigin? ¿Cómo afectan la carga de la hoja de estilo?

New user avatar Aug 17 '15 03:08 New user
Aceptado

Ambos atributos se agregaron a Bootstrap CDN para implementar Subresource Integrity .

La integridad de los subrecursos define un mecanismo mediante el cual los agentes de usuario pueden verificar que un recurso recuperado se haya entregado sin manipulación inesperada .

El atributo de integridad es permitir que el navegador verifique la fuente del archivo para garantizar que el código nunca se cargue si la fuente ha sido manipulada.

El atributo Crossorigin está presente cuando una solicitud se carga usando 'CORS', que ahora es un requisito de la verificación SRI cuando no se carga desde el 'mismo origen'. Más información sobre crossorigin

Más detalles sobre la implementación de CDN Bootstrap

jim.taylor.1974 avatar Aug 17 '2015 03:08 jim.taylor.1974

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 garantiza que el archivo no se modificó y contiene los datos esperados. De esta manera el navegador no cargará recursos diferentes (por ejemplo, maliciosos). Imagine una situación en la que sus archivos JavaScript fueron pirateados en la CDN y no había forma de saberlo. El atributo de integridad impide cargar contenido que no coincida.

El SRI no válido se bloqueará (herramientas para desarrolladores de Chrome), independientemente del origen cruzado. Debajo del caso NO CORS cuando el atributo de integridad no coincide:

ingrese la descripción de la imagen aquí

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. (Consulte CORS (intercambio de recursos entre orígenes) 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", se agregará el par clave-valor origen: <ORIGIN> a la solicitud HTTP como se muestra a continuación.

ingrese la descripción de la imagen aquí

crossorigin se puede configurar como "anónimo" o "usar credenciales". Ambos resultarán en agregar origin: a 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.

A continuación se muestra un caso al solicitar "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 crossorigin está configurado incorrectamente.

ingrese la descripción de la imagen aquí

Enlaces

  • https://www.w3.org/TR/cors/
  • https://www.rfc-editor.org/rfc/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
Witold Kaczurba avatar Mar 02 '2018 01:03 Witold Kaczurba

Técnicamente, el atributo Integridad ayuda precisamente con eso: permite la verificación adecuada de la fuente de datos. Es decir, simplemente permite al navegador verificar los números en el archivo fuente correcto con las cantidades solicitadas por el archivo fuente ubicado en el servidor CDN.

Profundizando un poco más, en el caso de que se establezca el valor hash cifrado de esta fuente y se verifique que cumple con un valor predefinido en el navegador, el código se ejecuta y la solicitud del usuario se procesa con éxito.

El atributo Crossorigin ayuda a los desarrolladores a optimizar las tasas de rendimiento de CDN y, al mismo tiempo, protege el código del sitio web de scripts maliciosos.

En particular, Crossorigin descarga el código del programa del sitio de forma anónima, sin descargar cookies ni realizar el procedimiento de autenticación. De esta manera, se evita la filtración de datos del usuario cuando se carga el sitio por primera vez en un servidor CDN específico, cuyas direcciones los estafadores de red pueden reemplazar fácilmente.

Fuente: https://yon.fun/what-is-link-integrity-and-crossorigin/

Ion Prodan avatar May 27 '2020 15:05 Ion Prodan