Hace poco leí que el complemento Flash ignora el encabezado Content-Type
en ciertas circunstancias. En particular, puede asignar a Flash una URL, y el complemento Flash buscará felizmente el contenido en esa URL y cargará todo lo que reciba como un archivo SWF, con los permisos del sitio desde donde se cargó el contenido, incluso si la respuesta proviene de con un encabezado Content-Type: text/plain
(o cualquier otro Content-Type
en absoluto). El encabezado Content-Type
puede indicar que esto no es un archivo SWF, y Flash todavía lo cargará como un archivo Flash. El contenido que se carga ni siquiera tiene que ser un archivo SWF válido; solo tiene que comenzar con un archivo SWF válido, y el complemento Flash ignorará cualquier crucero adicional que siga.
La fuente de esta reclamación: enlace
Si esto es cierto, esto no es bueno. Significa que mi sitio es vulnerable a XSS, si hay alguna página donde el atacante pueda controlar el inicio de la página. Significa que mi sitio puede ser vulnerable incluso si configuro cuidadosamente el encabezado Content-Type
correctamente en todas partes. Significa que las defensas estándar contra XSS cuando se sirve contenido cargado por el usuario no son suficientes.
Por ejemplo, si desea permitir que el usuario cargue un archivo de texto arbitrario y lo sirva a cualquiera que lo solicite, un enfoque estándar es asegurarse de establecer Content-Type: text/plain
en la respuesta. Se cree ampliamente que esto es suficiente para estar seguro. Si comprendo esta vulnerabilidad correctamente, esta práctica no es segura: un usuario malintencionado puede cargar un archivo de texto malintencionado que contenga el contenido de un archivo SWF y luego ejecutarlo con el complemento Flash, creando el equivalente moral de una vulnerabilidad XSS. en el sitio.
Esto me tiene un poco aplastado. ¿Es realmente cierto? ¿Flash tiene realmente esta vulnerabilidad? ¿Se ha parcheado Flash para arreglar esto? ¿Hay algún factor atenuante? ¿Hay alguna defensa limpia del lado del servidor para evitar este tipo de ataque?