JavaScript injection is het invoegen van door een aanvaller gecontroleerd script in een webpagina, zodat het in de browsers van bezoekers wordt uitgevoerd met dezelfde rechten als de eigen code van de pagina. Eenmaal actief kan geïnjecteerd script de DOM lezen, vastleggen wat gebruikers typen en data overal naartoe sturen — het mechanisme achter formjacking, Magecart en de meeste client-side datadiefstal.
Hoe wordt JavaScript geïnjecteerd?
| Injectiepad | Hoe het werkt | Wie is gecompromitteerd |
|---|---|---|
| XSS (reflected / stored / DOM-based) | Een fout in de site laat invoer van de aanvaller als script uitvoeren | De eigen code van de site |
| Third-party supply chain | Een leverancier wiens tag je laadt levert kwaadaardige code — door een breach of overname | De leverancier (Polyfill.io is het canonieke geval) |
| Verlopen / lookalike-domeinen | Een aanvaller neemt een domein over waarvandaan je pagina nog scripts laadt | De afhankelijkheidsketen |
| Misbruik van de tag manager | Een gecompromitteerd tag-manager-account injecteert "gewoon nóg een tag" | Je marketingstack |
| Client-side malware / extensies | Script wordt op de machine van de bezoeker geïnjecteerd, in elke site | De browser van de bezoeker |
Het eerste pad is een programmeerfout die je kunt herstellen. De middelste drie zijn vertrouwensfouten: de code werd binnengelaten. Een moderne pagina draait tientallen third-party scripts, en elk daarvan is een injectievector met volledige paginarechten — het kernprobleem van client-side security.
Wat geïnjecteerde scripts doen
Geïnjecteerde code kent geen rechtengrens die haar van je eigen code scheidt. In waargenomen aanvallen skimt ze betaalformulieren teken voor teken, oogst ze inloggegevens van loginpagina's, legt ze nep-betaalvelden over de legitieme heen, kaapt ze affiliate-inkomsten, leidt ze sessies om en stuurt ze de gestolen data naar de infrastructuur van de aanvaller — vaak domeinen met namen die lijken op de gewone adtech in je netwerktabblad.
Preventie: verklein het aantal paden
- Los de XSS-klasse op: output encoding, veilige sinks, sanitization, Trusted Types.
- Beperk bronnen met een Content Security Policy: een strikte, nonce-gebaseerde CSP blokkeert niet-geautoriseerde script-origins — met bekende beperkingen: ze kan niet beoordelen wat een toegestaan script na het laden doet.
- Pin wat je kunt: Subresource Integrity voor statische afhankelijkheden; minimaliseer de blast radius van de tag manager.
- Snoei de afhankelijkheidsboom: elk verwijderd third-party script is een verwijderd injectiepad.
Detectie: bewaak de runtime
Preventie verkleint de kans; ze kan niet reiken tot de compromittering van een vertrouwde leverancier. Detectie moet gebeuren waar de injectie landt — de browser. De scriptmonitoring van cside inventariseert elk script dat in echte sessies wordt uitgevoerd, analyseert payloads en alarmeert bij nieuwe domeinen, gewijzigde code en onverwachte datastromen. Op betaalpagina's is die runtime-inventaris bovendien een compliance-vereiste: de vereisten 6.4.3 en 11.6.1 van PCI DSS 4.0.1 bestaan juist omdat geïnjecteerd script op een betaalpagina onzichtbaar is voor elke server-side controle.







