Skip to main content
Blog
Blog Attacks

Wat is formjacking? Hoe het werkt en hoe je het detecteert

Formjacking injecteert kwaadaardige JavaScript in afrekenpagina's om kaartdata te stelen tijdens het typen, onzichtbaar voor WAF's en CSP's. Zo detecteer je het.

Jul 28, 2026 6 min read
Wat is formjacking? Hoe het werkt en hoe je het detecteert

Kort samengevat: hoe formulier-gebaseerde skimmers kaartgegevens stelen

  • Je WAF en je CSP zullen je vertellen dat de checkout schoon is terwijl kaartgegevens de browser al hebben verlaten. Beide controles zitten op de netwerklaag en de diefstal gebeurt binnen de DOM, op een script van een domein dat je allowlist al vertrouwt.
  • Visa schrijft 70% van kaartdiefstal toe aan de clientlaag, en British Airways verloor rond 380.000 records in 22 dagen voor het een boete van 20 miljoen pond van de ICO betaalde. cside hasht elke scriptpayload in echte browsersessies en alarmeert zodra een hash verandert.
  • Als je niet kunt zeggen of een script van een vertrouwd domein in het laatste uur is gewijzigd, ben je een payload-swap verwijderd van de volgende case study.

Formjacking is een webaanval die kwaadaardige JavaScript in een betaal- of afrekenpagina injecteert om kaartdata te stelen terwijl een bezoeker die intypt. Het script leest de waarden van formuliervelden in realtime, stuurt ze naar een server die door de aanvaller wordt beheerd en laat de oorspronkelijke transactie gewoon voltooien. De klant krijgt een bevestiging, de verkoper ziet een afgeronde verkoop en de kaartgegevens zijn al weg. Omdat de diefstal in de browser plaatsvindt, blijft die onzichtbaar voor de controles op netwerk- en serverniveau waar de meeste verkopers op vertrouwen.

Hoe formjacking werkt: stap voor stap

Formjacking is een aanval op de uitvoeringslaag. Het vereist geen netwerkinbraak of servercompromittering. Zo verloopt het.

  1. Een aanvaller injecteert kwaadaardige JavaScript in een betaal- of afrekenpagina. Dit gebeurt meestal door een script van een derde partij te compromitteren dat de verkoper al laadt, zoals een tagmanager, een analytics-bibliotheek of een tool die op een CDN wordt gehost.

  2. Wanneer een bezoeker bij het betaalformulier komt, begint het geïnjecteerde script toetsaanslagen of veldwaarden te onderscheppen in het Document Object Model van de browser. Het hoeft niet te wachten tot het formulier wordt verzonden.

  3. Terwijl de bezoeker zijn kaartnummer, vervaldatum en CVV intypt, legt het script die waarden vast en sluist ze in realtime weg naar een server die door de aanvaller wordt beheerd. De overdracht is meestal gecodeerd om opvallende detectie op netwerkniveau te vermijden.

  4. Het oorspronkelijke formulier blijft gewoon werken. De betaling wordt verwerkt, de bezoeker ontvangt een bevestiging en niets in zijn browser of in de serverlogs van de verkoper wijst op iets ongewoons.

Daarom is formjacking zo gevaarlijk. Er is geen foutmelding, geen mislukte transactie en geen afwijking op netwerk- of serverniveau. De aanval is onzichtbaar voor de controles die de meeste verkopers hebben ingericht.

British Airways 2018: wat er gebeurde

In 2018 injecteerde een Magecart-dreigingsactor een formjacking-script in de boekingssite van British Airways en bleef 22 dagen onopgemerkt actief, waarbij ongeveer 380.000 betaalrecords van klanten werden gecompromitteerd, waaronder kaartnummers, vervaldatums, CVV's en persoonlijke gegevens. Interne systemen hebben het in die periode niet opgemerkt omdat er geen monitoring op payloadniveau was ingericht.

De aanval wijzigde een script dat al op de site aanwezig was, dus er verschenen geen nieuwe script-URL's. Er ging geen enkele regel van de Content Security Policy af, omdat het domein dat het gewijzigde script serveerde al op de allowlist stond.

Het ICO-onderzoek leidde tot een boete van £20 miljoen. De grondoorzaakanalyse identificeerde het niet detecteren van een payloadwijziging binnen een vertrouwd script als de centrale technische tekortkoming.

Visa meldt dat het grootste deel van de diefstal van betaalkaartgegevens nu plaatsvindt op de clientlaag, in de browser, in plaats van op de server of tijdens de overdracht:

Waar kaartdata wordt gestolenAandeel van de diefstal
Clientlaag (browser / DOM)70%
Server-/netwerklaag30%

Bron: Visa. Formjacking is het belangrijkste mechanisme achter die 70%.

Formjacking en Magecart: wat elke term betekent

Magecart is een categorie dreigingsactoren, geen techniek. De naam verwijst naar een los collectief van criminele groepen die formjacking als hun voornaamste aanvalsmethode gebruiken.

Formjacking is de techniek: JavaScript injecteren om formuliergegevens te onderscheppen en weg te sluizen. Magecart-groepen behoren tot de meest actieve gebruikers van die techniek, maar ze zijn niet de enige.

Wanneer onderzoekers en journalisten de termen door elkaar gebruiken, beschrijven ze meestal een formjacking-aanval die aan Magecart wordt toegeschreven. Het onderscheid is belangrijk voor detectie. Je zoekt niet naar de signatuur van een specifieke groep; je zoekt naar het gedrag van payloadonderschepping, wie er ook achter zit.

Waarom WAF's en CSP's formjacking niet tegenhouden

Een web application firewall inspecteert HTTP-verkeer op de netwerklaag. Hij ziet de requests en responses tussen de browser en de server, maar heeft geen zicht op welke JavaScript in de DOM wordt uitgevoerd nadat de pagina is geladen. Een formjacking-script leeft volledig in de DOM. Het genereert geen verdachte request naar de server van de verkoper; het stuurt de gestolen data rechtstreeks naar een endpoint dat door de aanvaller wordt beheerd.

Een Content Security Policy beperkt welke domeinen scripts mogen serveren, en dat is een nuttige controle. Maar een formjacking-aanval wijzigt meestal een script dat wordt geserveerd vanaf een domein dat de CSP al vertrouwt. Het domein komt door de allowlist-controle heen en de payload zelf wordt nooit geïnspecteerd. Dit is precies de leemte waar Visa op wijst wanneer het ongeveer 70% van de kaartdiefstal toeschrijft aan de clientlaag, waar WAF's en servercontroles geen zicht op hebben.

Hoe cside-scriptmonitoring formjacking detecteert

Scriptmonitoring in echte sessies detecteert formjacking door van elke scriptpayload een hash te maken terwijl die in een echte browseromgeving wordt uitgevoerd, en waarschuwt zodra een hash verandert. Zo wordt payloadinjectie binnen vertrouwde scripts opgemerkt die zowel een CSP-allowlist als een WAF missen.

cside-scriptmonitoring draait in echte browsersessies en combineert 100+ signalen per sessie tot een realtime oordeel.

Wanneer een formjacking-payload in een vertrouwd script wordt geïnjecteerd, verandert de hash van dat script. cside detecteert de wijziging nagenoeg in realtime en verstuurt een waarschuwing met de script-identifier, de vorige hash, de nieuwe hash en een tijdstempel. De waarschuwing komt binnen voordat het gecompromitteerde script een noemenswaardige hoeveelheid gestolen data kan verzamelen.

De fingerprinting van cside behoudt een hoge nauwkeurigheid over incognito-, VPN- en cookiewissende sessies heen, en de monitoringmethodiek is gevalideerd door VikingCloud.

De PCI DSS-vereiste die specifiek op formjacking is gericht

PCI DSS-vereisten 6.4.3 en 11.6.1 zijn specifiek ingevoerd om het formjacking-risico aan te pakken, en werden verplicht op 2025-03-31.

Vereiste 6.4.3 vraagt verkopers om elk script op betaalpagina's te inventariseren, voor elk een zakelijke rechtvaardiging te documenteren, expliciete autorisatie te verkrijgen en de integriteit doorlopend te verifiëren. Dit richt zich rechtstreeks op het scenario waarin een vertrouwd script wordt gewijzigd zonder dat de verkoper het weet.

Vereiste 11.6.1 vereist een waarschuwingsmechanisme dat afgaat wanneer de headers of de inhoud van een betaalpagina op een ongeautoriseerde manier veranderen. De vrijwel realtime detectie die cside biedt, voldoet aan wat QSA's zoeken bij het beoordelen van 11.6.1-bewijs en gaat daar zelfs verder dan.

Controleer je betaalpagina's op injectierisico en begin gratis met cside PCI Shield. Voor hoe de termen zich tot elkaar verhouden, zie formjacking versus Magecart versus digital skimming, en voor hoe doorlopende monitoring in de praktijk werkt, zie de beste platforms voor het monitoren van scripts van derden.

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

Formjacking is een aanval waarbij kwaadaardige JavaScript in een betaal- of afrekenpagina wordt geïnjecteerd om kaartdata in realtime vast te leggen en weg te sluizen terwijl een bezoeker die intypt. Het oorspronkelijke formulier blijft gewoon werken, zodat noch de bezoeker noch de verkoper op het moment van de aanval iets ongewoons merkt. Formjacking draait volledig in de DOM van de browser en is onzichtbaar voor beveiligingscontroles op server- en netwerkniveau.

Magecart is een categorie dreigingsactoren; formjacking is de techniek die die groepen gebruiken. Magecart-groepen behoren tot de meest actieve gebruikers van formjacking, maar de techniek is niet exclusief voor hen. Wanneer je een mogelijk incident onderzoekt, is het doel om het gedrag van payloadonderschepping te detecteren, niet om een specifieke groep te identificeren.

Nee. Een web application firewall inspecteert het netwerkverkeer tussen de browser en de server. Formjacking draait volledig in de DOM van de browser nadat de pagina is geladen en stuurt de data rechtstreeks naar een endpoint dat door de aanvaller wordt beheerd, dus de WAF ziet er niets van. Een Content Security Policy beperkt domeinen, maar kan niet controleren of de payload van een script van een vertrouwd domein is gewijzigd. Scriptmonitoring in echte sessies is de controle die formjacking aanpakt op de laag waar het opereert.

In de meeste gevallen kom je er niet achter via interne logs. Formjacking laat geen afwijking op serverniveau en geen mislukte transacties achter. Detectie vereist het monitoren van JavaScript-payloads in echte browsersessies en het alarmeren bij hashwijzigingen. Het eerste externe signaal is vaak een golf van fraudechargebacks van klanten die je betaalpagina in een specifiek tijdvenster hebben gebruikt, en dan is de aanval al geslaagd. Doorlopende scriptmonitoring is het enige betrouwbare mechanisme voor vroegtijdige waarschuwing.

Monitor en beveilig je third-party scripts

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

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside-dashboardinterface met scriptmonitoring en beveiligingsanalyses
Related Articles
Boek een demo