My favorites | Sign in
Project Logo
             
Search
for
Updated Sep 11, 2008 by pilgrim
EsArticleUtf7  

UTF-7: El caso del charset perdido

English日本語Français
InicioSeguridad Web

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
Hosted by Google Code