Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Cabeceras de contenido y de privacidad

5 tareas · 35 min · Principiante

Además de la CSP, un puñado de cabeceras cortas le ponen límites al navegador: que no adivine el tipo de un archivo, que no deje incrustar la página en otra, que no cuente de más a dónde fue el usuario y que no active funciones que la aplicación no usa. Son baratas, y su ausencia se reporta con el peso que tiene: casi nunca crítico, casi siempre fácil de cerrar. En esta sala se comparan las respuestas de la tienda y del panel de Panadería Quebradillo y un registro de un tercero. No se pide nada a ningún servidor.

0 de 5 · 0%

Objetivo de la sala

Además de la CSP, un puñado de cabeceras cortas le ponen límites al navegador: que no adivine el tipo de un archivo, que no deje incrustar la página en otra, que no cuente de más a dónde fue el usuario y que no active funciones que la aplicación no usa. Son baratas, y su ausencia se reporta con el peso que tiene: casi nunca crítico, casi siempre fácil de cerrar. En esta sala se comparan las respuestas de la tienda y del panel de Panadería Quebradillo y un registro de un tercero. No se pide nada a ningún servidor.

Cuando un archivo llega con un tipo de contenido que no coincide con lo que parece, algunos navegadores lo «olfatean» y lo tratan como lo que creen que es. Si un usuario sube un archivo que el servidor entrega como texto y el navegador decide que es un script, el resultado es un fallo de seguridad. La cabecera X-Content-Type-Options con el valor nosniff le dice al navegador que respete el tipo declarado, y que no ejecute como script lo que no llegó como script.

Se acompaña con una práctica obvia: declarar bien el tipo de contenido en cada respuesta, con su juego de caracteres.

Responde para continuar

¿Qué consigue X-Content-Type-Options con el valor nosniff?

Ver pista de ayuda

El nombre habla de «sniff», olfatear el contenido para adivinar su tipo.

Cuando una página carga un recurso externo o enlaza a otro sitio, el navegador manda la cabecera Referer con la dirección de origen. Referrer-Policy decide cuánto de esa dirección se envía: nada, solo el origen, o la dirección completa. Si la dirección completa lleva datos sensibles en la consulta (un código de recuperación de cuenta, por ejemplo), se los está entregando al tercero que recibe el recurso. El valor recomendado por OWASP es strict-origin-when-cross-origin, que fuera del sitio manda solo el origen.

Abre respuesta-panel.http y registro-referer.txt: el segundo muestra lo que recibió un servicio externo de analítica.

Responde para continuar

¿Qué valor de Referrer-Policy envía el panel? Escríbelo como figura.

Ver pista de ayuda

Es la línea Referrer-Policy de respuesta-panel.http. Su valor explica lo que se ve en el registro del tercero.

Si otra página puede incrustar la tuya en un marco invisible, puede engañar a una persona para que haga clic en lo que no ve (clickjacking). La defensa moderna es la directiva frame-ancestors de la CSP, que dice qué sitios pueden incrustar la página, y 'none' impide todos. Reemplaza a la vieja cabecera X-Frame-Options, que sigue siendo útil por compatibilidad con navegadores antiguos. Dos detalles: frame-ancestors no cae sobre default-src (si no se declara, cualquiera puede incrustar) y no funciona dentro de una etiqueta meta, solo como cabecera.

Compara las dos respuestas: la tienda lo resuelve; el panel, que muestra datos de pedidos, no lleva ninguna de las dos protecciones.

Responde para continuar

El panel de pedidos puede ser incrustado por cualquier sitio. ¿Qué se recomienda?

Ver pista de ayuda

La directiva solo sirve como cabecera de respuesta, y se acompaña con la antigua para navegadores viejos.

Permissions-Policy decide qué funciones del navegador puede usar la página y los marcos que incrusta: geolocalización, cámara, micrófono, pagos. La regla es de mínimo privilegio: lo que la aplicación no usa se desactiva con una lista vacía, porque si un XSS ocurre no podrá encender la cámara de quien visita. Un asterisco abre la función a cualquier origen.

Compara la política de la tienda, que apaga lo que no necesita, con la del panel, que deja una función abierta a cualquier origen sin que un panel de pedidos la necesite.

Responde para continuar

¿Qué función del navegador deja permitida para cualquier origen el Permissions-Policy del panel? Escribe su nombre en inglés, como figura.

Ver pista de ayuda

Busca en respuesta-panel.http la función con asterisco; la de geolocalización va con lista vacía.

No toda cabecera de seguridad suma. X-XSS-Protection activaba un filtro de los navegadores antiguos que ya fue retirado, y OWASP recomienda no usarlo (si se envía, con el valor 0): el filtro llegó a crear fallos que no existían. Server y X-Powered-By anuncian software y versión: no son una vulnerabilidad, pero le ahorran trabajo a quien enumera; se reportan como informativo o bajo, y se quitan o se dejan genéricos.

El informe necesita proporción. Lo que falta de verdad en el panel (marcos, tipo de contenido, referencias) pesa más que estas dos señales.

Responde para continuar

El panel envía X-XSS-Protection con el valor 1; mode=block y anuncia versiones de servidor y PHP. ¿Cómo se clasifica?

Ver pista de ayuda

El peso del hallazgo debe ser el real: señales útiles para quien enumera, no una vulnerabilidad demostrada.

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