¿Qué hacen las opciones de tipo de contenido X?

Los encabezados de seguridad son un subconjunto de los encabezados de respuesta HTTP que puede configurar un servidor web que requiere una verificación de seguridad del navegador. Los encabezados HTTP son un tipo de metadatos que se envían con solicitudes y respuestas web. El encabezado de seguridad «X-Content-Type-Options» evita que los navegadores realicen un seguimiento MIME.

Nota: los encabezados HTTP no son exclusivos de HTTP y también se utilizan en HTTPS.

¿A qué huele MIME?

Al enviar datos a través de la web, uno de los metadatos incluidos es MIME. Las extensiones de correo electrónico de Internet multifunción, o tipos MIME, son un estándar para definir el tipo de datos contenidos en un archivo, lo que indica cómo se debe manejar el archivo. El tipo MIME normalmente consta de un tipo y sustrato con un parámetro y un valor opcionales. Por ejemplo, el archivo de texto UTF-8 tendría el tipo MIME «texto / plano»; juego de caracteres = UTF-8 «. En este ejemplo, el tipo es» texto «, el sustrato es» simple «, el parámetro es» juego de caracteres «y el valor es» UTF-8 «.

Para evitar el mal manejo y el mal manejo de archivos, el seguimiento MIME a menudo se realiza mediante servidores web. Este es un proceso que ignora el tipo MIME explícitamente declarado y analiza el comienzo del archivo. La mayoría de los tipos de archivos incluyen encabezados de secuencia que indican qué tipo de archivo es. La mayoría de las veces, los tipos MIME son correctos y el seguimiento de archivos no hace ninguna diferencia. Sin embargo, si hay una diferencia, los servidores web utilizarán el tipo de archivo detectado para averiguar cómo manejar el archivo en lugar del tipo MIME declarado.

El problema surge si un atacante logra subir un archivo como imagen PNG, pero en realidad el archivo es un poco más parecido a JavaScript. Para tipos de archivos similares, como dos tipos de texto, es posible que esto no le cause demasiados problemas. Sin embargo, ejecutar un archivo perfectamente inofensivo es un problema grave.

¿Qué hacen las opciones de tipo de contenido X?

El encabezado X-Content-Type-Options «X-Content-Type-Options: nosniff» solo tiene un valor posible. La activación informa al navegador del usuario que no debe seguir el tipo MIME y, en cambio, se basa en el valor establecido explícitamente. Sin esta configuración, si una imagen enmascara un archivo JavaScript malicioso como PNG, el archivo JavaScript se ejecutaría. Con X-Content-Type-Options habilitado, el archivo se tratará como una imagen descargada porque el archivo no tiene un formato de imagen válido.

X-Content-Type-Options no es particularmente necesario para un sitio web que usa sus propios recursos, ya que no hay posibilidad de publicar accidentalmente un archivo malicioso. Si un sitio web utiliza contenido de terceros como recursos externos o enviado por el usuario, X-Content-Type-Options brinda protección contra este tipo de ataque.