|
EsArticleUtf7
UTF-7: El caso del charset perdido
UTF-7 es una codificación diseñada originalmente para puertas de enlace SMTP que no pudieran trabajar con caracteres 8-bit/binario. Este usaba una codificación Base64 modificada para representar carácteres de 8-bit y caracteres ASCII no-imprimibles usando 7-bit ASCII. La cadena <script>alert(1)</script> puede ser codificada en UTF-7 como +ADw-script+AD4-alert(1)+ADw-/script+AD4- Cuando el servidor web no incluye una codificación de carácteres explícita en su respuesta HTTP -- ya sea en la cabecera HTTP Content-Type o la etiqueta META dentro del HTML mismo -- Internet Explorer intentará adivinar la codificación. Si ciertas cadenas de la entrada del usuario -- dicen, +ADw-script+AD4-alert(1)+ADw-/script+AD4- -- se hizo eco con antelación en la página HTML, Internet Explorer puede pensar incorrectamente que la página está codificada en UTF-7. De pronto, la aparentemente inofensiva entrada del usuario se convierte en HTML activo y se ejecuta. Solución
Para establecer la codificación en las cabeceras HTTP, usa el parámetro charset de la cabecera Content-Type: Content-Type: text/html; charset=UTF-8 Para establecer la codificación con el documento HTML, usa una etiqueta <meta>: <meta http-equiv="Content-type" content="text/html; charset=utf-8"> Importante: La etiqueta <meta> solo debe aparecer en el documento antes de cualquier contenido que pudiera ser controlado por un atacante, como una etiqueta <title> conteniendo un título generado dinámicamente por el documento. Para Leer Más |
Sign in to add a comment