ENES

Cross-site scripting

Meter código en un sitio web para que se ejecute en los navegadores de otros visitantes.

Un atacante publica un comentario con código escondido en un sitio; el sitio se lo muestra a otro visitante, cuyo navegador lo ejecuta y le manda la cookie de sesión al atacante

Los sitios web muestran todo el tiempo texto que escribió otra persona: comentarios, reseñas, nombres de usuario, lo que buscaste. El cross-site scripting, que casi todos llaman XSS, ocurre cuando un sitio muestra ese texto sin asegurarse de que siga siendo texto. Si un atacante escribe un comentario con un poco de JavaScript disfrazado dentro de HTML, y el sitio lo pega en la página tal cual, el navegador web de cada visitante lo lee como parte de la página y lo ejecuta.

Ese código corre con la identidad del propio sitio. Puede leer lo que muestra la página, actuar como el visitante logueado (publicar, cambiar configuraciones, mandar mensajes), mostrar un cuadro de login falso o llevarse las cookies de sesión para que el atacante se quede con la cuenta. El visitante no hizo nada mal: abrió un sitio confiable. La falla está en el sitio, que dejó entrar código de afuera a sus páginas.

Hay algunas variantes. El XSS almacenado vive en la base de datos del sitio, como el comentario de arriba, y afecta a todos los que lo ven. El XSS reflejado rebota en un enlace: la parte maliciosa está en la URL y la página se la devuelve a quien hace clic. El XSS basado en DOM pasa entero dentro del navegador, en el propio JavaScript del sitio.

Las defensas son conocidas. Los desarrolladores escapan o codifican todo lo que viene de afuera antes de ponerlo en una página, así un < aparece como el carácter en vez de abrir una etiqueta; los frameworks modernos lo hacen solos. Una Content Security Policy le dice al navegador qué scripts espera realmente el sitio, y marcar las cookies de sesión como HttpOnly evita que los scripts las lean. La guía de OWASP cubre todo esto en detalle.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Seguridad