El rastreo de contenido (o content sniffing en inglés), también conocido como rastreo de tipo de medio o rastreo MIME, es la práctica de inspeccionar el contenido de un flujo de bytes para intentar deducir el formato de archivo de los datos que contiene. El rastreo de contenido generalmente se utiliza para compensar la falta de metadatos precisos que de otro modo serían necesarios para permitir que el archivo se interprete correctamente.

Las técnicas de rastreo de contenido suelen combinar diversos métodos que aprovechan la redundancia presente en la mayoría de los formatos de archivo. Estas incluyen la detección de firmas o identificadores únicos (como números mágicos), así como heurísticas basadas en patrones comunes: búsqueda de sub cadenas representativas, análisis de frecuencia de bytes, uso de tablas de n-gramas y métodos de inferencia bayesiana.

El rastreo de tipos MIME (Extensiones Multipropósito de Correo de Internet) ha sido, y aún es, utilizado por algunos navegadores web —en particular, Internet Explorer de Microsoft— con el objetivo de compensar la falta de etiquetado correcto del tipo MIME por parte de ciertos sitios web. Sin embargo, esta práctica introduce una vulnerabilidad de seguridad crítica: si un atacante logra engañar al algoritmo de rastreo MIME, el navegador puede interpretar el contenido de forma inesperada, permitiendo ataques como la ejecución de scripts entre sitios (XSS), sin que el operador del sitio ni el usuario lo anticipen. Además, al permitir que sitios mal configurados funcionen aparentemente sin problemas, se desalienta el uso correcto de los encabezados MIME. Esto perpetúa la necesidad del rastreo de contenido, generando un ciclo vicioso que compromete tanto la compatibilidad con los estándares web como las mejores prácticas de seguridad.

HTML5 incluye una especificación para el rastreo de tipos de medios que busca equilibrar los requisitos de seguridad con la necesidad de mantener compatibilidad con contenido web que presenta datos MIME ausentes o incorrectos. Su objetivo es ofrecer una definición clara y precisa que permita a distintas implementaciones adoptar un conjunto único de comportamientos bien definidos y predecibles.

Rastreo de conjuntos de caracteres Muchos navegadores web emplean un método más restringido de análisis de contenido con el fin de identificar la codificación de caracteres en archivos de texto cuyo tipo MIME ya ha sido determinado. Esta técnica, conocida como detección de conjuntos de caracteres o rastreo de páginas de códigos, también puede emplearse —en ciertos casos— para sortear restricciones de seguridad asociadas a algunas codificaciones. Por ejemplo, se puede engañar a Internet Explorer 7 para que ejecute JScript eludiendo su política al permitir que el navegador adivine que un archivo HTML fue codificado en UTF-7 . Este error se ve agravado por la característica de la codificación UTF-7 que permite múltiples codificaciones del mismo texto y, específicamente, representaciones alternativas de caracteres ASCII .

Véase también

Rastreo del navegador

Referencias

Enlaces externos

Encabezado X-Content-Type-Options Estándar de rastreo MIME

Categoría:Tecnología web Categoría:Formatos de archivos informáticos Categoría:Heurística