Skip to main content
Todos los Términos Glossary

X-Content-Type-Options

Definition

X-Content-Type-Options es un encabezado HTTP que impide que los navegadores detecten un tipo de contenido de una respuesta diferente al declarado. Esto ayuda a prevenir ataques en los que los navegadores podrían interpretar los archivos como un tipo de contenido diferente al previsto. El encabezado debe establecerse en 'nosniff' para aplicar una comprobación estricta del tipo MIME.

Qué hace X-Content-Type-Options

X-Content-Type-Options es una cabecera de respuesta con un único valor significativo, nosniff. Normalmente, si el Content-Type declarado por un servidor parece incorrecto o falta, el navegador puede analizar los bytes y adivinar el tipo real, una función de conveniencia que puede resultar peligrosa. Con nosniff, el navegador deja de adivinar y respeta exactamente el Content-Type declarado. Se niega a ejecutar una respuesta como script u hoja de estilos a menos que el tipo coincida (por ejemplo text/javascript o text/css), y refuerza las protecciones de Cross-Origin-Read-Blocking. En la práctica esto significa que un archivo que el servidor etiqueta como text/plain no puede forzarse a ejecutarse como JavaScript solo porque su contenido resulte ser código válido.

Por qué el sniffing de MIME era un riesgo

El sniffing de MIME habilitaba una clase real de ataques. Un atacante capaz de subir o influir en un archivo, digamos un avatar de usuario o un documento de texto, podía elaborar bytes que un navegador que hiciera sniffing interpretara como HTML o JavaScript, convirtiendo un endpoint de subida inofensivo en un vector de XSS almacenado. El sniffing también socavaba los controles de acceso basados en el tipo de contenido. Configurar nosniff cierra esa brecha obligando al navegador a confiar en el tipo declarado por el servidor, de modo que el contenido mal etiquetado o controlado por el atacante se renderiza de forma inerte en lugar de ejecutarse. Es una cabecera pequeña, con soporte universal y prácticamente sin inconvenientes en un sitio correctamente configurado, y por eso las bases de referencia de seguridad y los escáneres señalan su ausencia.

Cómo desplegarla correctamente

Envía X-Content-Type-Options: nosniff en cada respuesta, y asegúrate de que tu aplicación configure realmente cabeceras Content-Type correctas, porque nosniff rechazará los recursos mal etiquetados. Sirve los archivos subidos por usuarios desde un origen distinto o con Content-Disposition: attachment cuando corresponda, y nunca confíes en el sniffing para arreglar tipos incorrectos. Combínala con una Content-Security-Policy sólida y declaraciones de charset correctas para una cobertura completa. Es una cuestión de configuración del servidor y la CDN, no un problema de scripts de terceros, así que queda fuera del foco de análisis de carga de cside; trátala como un endurecimiento estándar junto con las demás cabeceras de seguridad que tu framework o edge puede emitir por defecto.

Definition

¿Qué valor debe tener X-Content-Type-Options?

El único valor válido y significativo es nosniff. A pesar del nombre en plural de la cabecera no hay una lista de opciones; o bien envías X-Content-Type-Options: nosniff para desactivar el sniffing de MIME o bien omites la cabecera por completo. Cualquier otro valor lo ignoran los navegadores, así que el control está en la práctica activado o desactivado.

Definition

¿Puede nosniff romper un sitio que funciona?

Puede, pero solo si el servidor envía cabeceras Content-Type incorrectas. Con nosniff, una hoja de estilos mal etiquetada como text/plain o un script servido con el tipo equivocado será rechazado en lugar de adivinado para que funcione. La solución correcta es configurar valores Content-Type precisos, no quitar la cabecera.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Te enseñaremos:

Qué scripts de terceros se están ejecutando ahora mismo en tu sitio
En qué punto estás con los requisitos 6.4.3 y 11.6.1 de PCI DSS
Qué parte de tu tráfico son bots y agentes de IA

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco