Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Integridad de subrecursos y versiones fijadas

5 tareas · 40 min · Principiante

Autorizar un script es autorizar unos bytes concretos, no una dirección. Si el archivo que hay detrás de la dirección cambia, la autorización ya no dice nada. Anacona Hogar te entrega la cabecera de su página de pago, la consola de una carga de prueba, lo que publica cada proveedor y dos quejas que nadie ha conectado. Se lee la integridad de subrecursos como quien la va a dejar funcionando.

0 de 5 · 0%

Objetivo de la sala

Autorizar un script es autorizar unos bytes concretos, no una dirección. Si el archivo que hay detrás de la dirección cambia, la autorización ya no dice nada. Anacona Hogar te entrega la cabecera de su página de pago, la consola de una carga de prueba, lo que publica cada proveedor y dos quejas que nadie ha conectado. Se lee la integridad de subrecursos como quien la va a dejar funcionando.

La integridad de subrecursos (SRI, por sus siglas en inglés) es una especificación del W3C que permite poner en la etiqueta <script> o <link> un atributo integrity con la huella criptográfica del archivo esperado: el nombre del algoritmo (sha256, sha384 o sha512), un guion y el resumen codificado. Al descargar el archivo, el navegador calcula su huella y, si no coincide, no lo ejecuta y deja constancia del bloqueo.

La huella demuestra una sola cosa: que el archivo es el mismo que alguien revisó cuando calculó el valor. No dice que ese archivo sea seguro ni que el proveedor sea de fiar; convierte la revisión de un momento en una garantía que se mantiene mientras la huella no cambie. Por eso la huella solo tiene sentido sobre una dirección que siempre sirve el mismo contenido, es decir, una versión fijada en la ruta.

Responde para continuar

Una etiqueta de script tiene un atributo integrity correcto. ¿Qué queda garantizado?

Ver pista de ayuda

La huella compara bytes, no intenciones.

Muchos proveedores ofrecen una ruta «última versión» que cambia de contenido cada vez que publican. Ponerle una huella a esa ruta funciona hasta el día de la siguiente publicación: ese día el navegador bloquea el script, que es justo lo que la huella promete, y la funcionalidad se cae sin que nadie en la tienda haya tocado nada.

Abre el laboratorio y lee pago-cabecera.html, consola-pago.txt, versiones-proveedores.txt y solicitudes.txt en la carpeta anacona-integridad. Cruza la huella que calculó el navegador con las que publica el proveedor de direcciones.

Responde para continuar

¿Qué versión del proveedor de direcciones hizo que el navegador dejara de ejecutar su script en el pago? Escribe solo el número de versión.

Ver pista de ayuda

Busca en la lista del proveedor cuál publicó la huella que calculó el navegador.

Para comprobar la huella de un archivo de otro origen, el navegador necesita leer su contenido, y eso solo lo permite si la petición se hace en modo CORS y el servidor responde autorizándolo. Si la etiqueta no pide ese modo, la respuesta llega opaca: el navegador no puede calcular nada y, como no puede cumplir la promesa de la huella, tampoco ejecuta el script. El resultado se parece a una huella equivocada, pero la causa está en la etiqueta y no en el archivo.

Compara las dos etiquetas de terceros que llevan integrity y lo que el proveedor de medición responde en sus cabeceras.

Responde para continuar

¿Qué atributo le falta a la etiqueta de medicion-visitas.js para que el navegador pueda comprobar su huella? Escribe su nombre.

Ver pista de ayuda

La otra etiqueta con huella lo tiene; el proveedor de medición ya responde lo necesario.

Servicio al cliente quiere que vuelva el autocompletado de direcciones hoy mismo. Hay arreglos que lo devuelven y conservan la garantía, y arreglos que lo devuelven tirando la garantía a la basura.

Responde para continuar

¿Qué cambio en la etiqueta de direcciones-autocompletar.js recomiendas?

Ver pista de ayuda

La huella solo sirve si la dirección no cambia de contenido por su cuenta.

La pasarela actualiza campos-tarjeta.js en la misma ruta y no publica huellas; el chat solo ofrece una ruta de última versión. Con ellos la integridad de subrecursos no es posible, y el requisito 6.4.3 sigue pidiendo un método que asegure la integridad de cada script del pago. Hay que buscar otra forma de cumplir lo mismo.

Responde para continuar

¿Qué propones para el script de la pasarela, que no admite huella?

Ver pista de ayuda

Lee la nota que dejó la propia pasarela.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad