Skip to main content
Blog
Blog Attacks

¿Qué es el formjacking? Cómo funciona y cómo detectarlo

El formjacking inyecta JavaScript malicioso en páginas de pago para robar datos de tarjeta según se escriben, invisible para WAF y CSP. Así se detecta.

Jul 28, 2026 8 min read
¿Qué es el formjacking? Cómo funciona y cómo detectarlo

Resumen: cómo los skimmers basados en formularios roban datos de tarjeta

  • Tu WAF y tu CSP te dirán que el checkout está limpio mientras los datos de tarjeta se escapan del navegador. Ambos controles viven en la capa de red y el robo ocurre dentro del DOM, en un script servido desde un dominio que tu allowlist ya considera confiable.
  • Visa atribuye el 70% del robo de tarjetas a la capa cliente y British Airways perdió cerca de 380.000 registros en 22 días antes de pagar una multa de 20 millones de libras del ICO. cside hashea cada payload de script en sesiones reales del navegador y alerta en cuanto un hash cambia.
  • Si no puedes responder si un script de dominio confiable fue modificado en la última hora, estás a un cambio de payload de convertirte en el próximo caso de estudio.

El formjacking es un ataque web que inyecta JavaScript malicioso en una página de pago o de checkout para robar los datos de la tarjeta a medida que el visitante los escribe. El script lee los valores de los campos del formulario en tiempo real, los envía a un servidor controlado por el atacante y deja que la transacción original se complete con normalidad. El comprador recibe una confirmación, el comerciante ve una venta completada y los datos de la tarjeta ya han desaparecido. Como el robo ocurre dentro del navegador, permanece invisible para los controles de red y de servidor en los que confía la mayoría de comerciantes.

Cómo funciona el formjacking: paso a paso

El formjacking es un ataque de la capa de ejecución. No requiere una brecha de red ni un compromiso del servidor. Así se desarrolla.

  1. Un atacante inyecta JavaScript malicioso en una página de pago o de checkout. Normalmente lo hace comprometiendo un script de terceros que el comerciante ya carga, como un gestor de etiquetas, una biblioteca de analítica o una utilidad alojada en una CDN.

  2. Cuando un visitante llega al formulario de pago, el script inyectado empieza a interceptar las pulsaciones de teclado o los valores de los campos en el Document Object Model del navegador. No necesita esperar al envío del formulario.

  3. A medida que el visitante escribe el número de su tarjeta, la fecha de caducidad y el CVV, el script captura esos valores y los exfiltra a un servidor controlado por el atacante en tiempo real. La transferencia suele codificarse para evitar una detección evidente en la capa de red.

  4. El formulario original sigue funcionando. El pago se procesa, el visitante recibe una confirmación y nada en su navegador ni en los registros del servidor del comerciante señala algo inusual.

Por eso el formjacking es tan peligroso. No hay error, ni transacción fallida, ni anomalía en la capa de red o de servidor. El ataque es invisible para los controles que la mayoría de comerciantes tiene implantados.

British Airways 2018: qué pasó

En 2018, un actor de amenazas de Magecart inyectó un script de formjacking en el sitio de reservas de British Airways y operó sin ser detectado durante 22 días, comprometiendo alrededor de 380.000 registros de pago de clientes, incluyendo números de tarjeta, fechas de caducidad, CVV e información personal. Los sistemas internos no lo detectaron durante ese periodo porque no había ninguna monitorización a nivel de payload.

El ataque modificó un script que ya estaba presente en el sitio, por lo que no aparecieron nuevas URL de scripts. No se activó ninguna regla de Content Security Policy, porque el dominio que servía el script modificado ya estaba en la lista de permitidos.

La investigación del ICO se saldó con una multa de £20 millones. La conclusión sobre la causa raíz identificó el fallo a la hora de detectar un cambio de payload dentro de un script de confianza como el fallo técnico central.

Visa informa de que la gran mayoría del robo de tarjetas de pago ocurre ahora en la capa del cliente, en el navegador, en lugar de en el servidor o en tránsito:

Dónde se roban los datos de la tarjetaPorcentaje del robo
Capa del cliente (navegador / DOM)70%
Capa de servidor / red30%

Fuente: Visa. El formjacking es el mecanismo principal detrás de ese 70%.

Formjacking y Magecart: qué significa cada término

Magecart es una categoría de actor de amenazas, no una técnica. El nombre se refiere a un colectivo difuso de grupos criminales que usan el formjacking como su principal método de ataque.

El formjacking es la técnica: inyectar JavaScript para interceptar y exfiltrar datos de formularios. Los grupos de Magecart están entre los usuarios más prolíficos de esa técnica, pero no son los únicos.

Cuando los investigadores y los periodistas usan los términos indistintamente, normalmente describen un ataque de formjacking atribuido a Magecart. La distinción importa para la detección. No buscas la firma de un grupo concreto; buscas el comportamiento de interceptación del payload, sea quien sea el responsable.

Por qué los WAF y los CSP no detienen el formjacking

Un firewall de aplicaciones web inspecciona el tráfico HTTP en la capa de red. Ve las peticiones y respuestas entre el navegador y el servidor, pero no tiene visibilidad de qué JavaScript se ejecuta dentro del DOM después de que la página se cargue. Un script de formjacking vive por completo en el DOM. No genera una petición sospechosa al servidor del comerciante; envía los datos robados directamente a un endpoint controlado por el atacante.

Una Content Security Policy restringe qué dominios pueden servir scripts, y es un control útil. Pero un ataque de formjacking normalmente modifica un script servido desde un dominio en el que la CSP ya confía. El dominio pasa la comprobación de la lista de permitidos, y el payload en sí nunca se inspecciona. Esta es la misma brecha a la que apunta Visa cuando atribuye alrededor del 70% del robo de tarjetas a la capa del cliente, donde los WAF y los controles del lado del servidor no tienen línea de visión.

Cómo la monitorización de scripts de cside detecta el formjacking

La monitorización de scripts en sesión real detecta el formjacking calculando el hash de cada payload de script a medida que se ejecuta dentro de un entorno de navegador genuino, y avisando en el momento en que cualquier hash cambia. Esto detecta la inyección de payload dentro de scripts de confianza que tanto una lista de permitidos de CSP como un WAF pasan por alto.

La monitorización de scripts de cside se ejecuta en sesiones de navegador reales y combina más de 100 señales por sesión en un veredicto en tiempo real.

Cuando un payload de formjacking se inyecta en un script de confianza, el hash de ese script cambia. cside detecta el cambio casi en tiempo real y dispara una alerta que incluye el identificador del script, el hash anterior, el nuevo hash y una marca de tiempo. La alerta llega antes de que el script comprometido pueda acumular un volumen significativo de datos robados.

El fingerprinting de cside mantiene una alta precisión en sesiones de incógnito, con VPN y con borrado de cookies, y su metodología de monitorización está validada por VikingCloud.

El requisito de PCI DSS que apunta específicamente al formjacking

Los requisitos 6.4.3 y 11.6.1 de PCI DSS se introdujeron específicamente para abordar el riesgo del formjacking, y pasaron a ser obligatorios el 2025-03-31.

El requisito 6.4.3 pide a los comerciantes que inventaríen cada script de las páginas de pago, documenten una justificación de negocio para cada uno, obtengan una autorización explícita y verifiquen la integridad de forma continua. Esto apunta directamente al escenario en el que un script de confianza se modifica sin que el comerciante lo sepa.

El requisito 11.6.1 exige un mecanismo de alerta que se dispare cuando las cabeceras o el contenido de la página de pago cambian de forma no autorizada. La detección casi en tiempo real que ofrece cside cumple y supera lo que los QSA buscan cuando revisan las evidencias de 11.6.1.

Comprueba el riesgo de inyección en tus páginas de pago y empieza gratis con cside PCI Shield. Para ver cómo se relacionan los términos, consulta formjacking vs Magecart vs digital skimming, y para ver cómo funciona la monitorización continua en la práctica, consulta las mejores plataformas para la monitorización de scripts de terceros.

Mike Kutlu
Client-Side Security Consultant

Client-side security consultant at cside. 10+ years of experience implementing technology solutions for enterprises (previously at Oracle, Cloudflare, and Splunk). Now helping teams use client-side intelligence to catch & reduce fraud.

FAQ

Frequently Asked Questions

El formjacking es un ataque en el que se inyecta JavaScript malicioso en una página de pago o de checkout para capturar y exfiltrar los datos de la tarjeta en tiempo real a medida que el visitante los escribe. El formulario original sigue funcionando con normalidad, así que ni el visitante ni el comerciante notan nada inusual en el momento del ataque. El formjacking se ejecuta por completo en el DOM del navegador y es invisible para los controles de seguridad del lado del servidor y de la capa de red.

Magecart es una categoría de grupos de actores de amenazas; el formjacking es la técnica que usan esos grupos. Los grupos de Magecart están entre los practicantes más prolíficos del formjacking, pero la técnica no es exclusiva de ellos. Cuando investigas un posible incidente, el objetivo es detectar el comportamiento de interceptación del payload, no identificar a un grupo concreto.

No. Un firewall de aplicaciones web inspecciona el tráfico de red entre el navegador y el servidor. El formjacking se ejecuta por completo dentro del DOM del navegador después de que la página se cargue y envía los datos directamente a un endpoint controlado por el atacante, así que el WAF no ve nada de eso. Una Content Security Policy restringe dominios pero no puede comprobar si un script de un dominio de confianza ha tenido su payload modificado. La monitorización de scripts en sesión real es el control que aborda el formjacking en la capa en la que opera.

En la mayoría de los casos no lo sabrás por los registros internos. El formjacking no deja ninguna anomalía del lado del servidor ni transacciones fallidas. La detección requiere monitorizar los payloads de JavaScript en sesiones de navegador reales y avisar de los cambios de hash. La primera señal externa suele ser una oleada de contracargos por fraude de clientes que usaron tu página de pago en una ventana de tiempo concreta, y para entonces el ataque ya ha tenido éxito. La monitorización continua de scripts es el único mecanismo fiable de alerta temprana.

Monitoriza y protege tus scripts de terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Empieza gratis o prueba Business con una versión de prueba de 14 días.

Interfaz del panel de cside que muestra la monitorización de scripts y el análisis de seguridad
Related Articles
Reservar una demo