Skip to main content
Alle Termen Glossary

HTML Injection

Definition

HTML-injectie treedt op wanneer een aanvaller willekeurige HTML-tags kan invoegen in een webpagina, wat mogelijk kan leiden tot XSS-aanvallen of manipulatie van de paginastructuur. Hoewel minder ernstig dan script-injectie, kan HTML-injectie nog steeds verschillende aanvallen mogelijk maken, waaronder content spoofing en stijlgebaseerde aanvallen. Preventie vereist juiste inputvalidatie en output-encoding.

Hoe HTML-injectie werkt

HTML-injectie is een fout waarbij een applicatie door een aanvaller beheerste invoer in een pagina invoegt zonder ze te encoderen, waardoor de aanvaller HTML-markup, tags, attributen en structuur kan toevoegen of wijzigen. Het is de bredere categorie waarvan cross-site scripting het ernstigste geval is: als de geïnjecteerde markup een uitvoerbaar script of event handler kan bevatten, wordt het XSS, maar als filtering script blokkeert terwijl andere tags nog worden toegestaan, blijft de aanvaller achter met pure HTML-injectie. Zelfs zonder code uit te voeren kan een aanvaller links, formulieren, afbeeldingen, iframes en styles injecteren. De grondoorzaak is dezelfde, onvertrouwde data die de HTML-output onge-escapet bereikt, of de bron nu een URL-parameter, een formulierveld of opgeslagen inhoud is.

Waarom HTML-injectie ertoe doet

Hoewel HTML-injectie vaak lager wordt ingeschaald dan script-injectie, is het verre van onschuldig. Een aanvaller kan een overtuigend nep-inlogformulier op een vertrouwde pagina enten en de inloggegevens naar zijn eigen server sturen, een vorm van phishing op de pagina zelf die nog steeds het echte domein in de adresbalk draagt. Geïnjecteerde inhoud kan de pagina bekladden, misleidende tekst of aanstootgevende afbeeldingen invoegen, elementen overlappen om kliks te kapen, of externe bronnen binnenhalen. Loshangende markup en geïnjecteerde afbeeldingen kunnen ook delen van de pagina of anti-CSRF-tokens naar een aanvaller lekken. En omdat filters die scripttags verwijderen maar andere markup toestaan veelvoorkomend zijn, wordt HTML-injectie vaak de opstap die later escaleert tot volledige XSS.

Hoe je je tegen HTML-injectie verdedigt

De oplossing weerspiegelt XSS-verdediging: plaats nooit onvertrouwde invoer als ruwe markup in een pagina. Encodeer output voor de HTML-context zodat tags als zichtbare tekst renderen, valideer invoer, en wanneer je rijke inhoud moet accepteren, haal die dan door een strikte allowlist-sanitizer die onbekende tags, event handlers en gevaarlijke attributen verwijdert. Een Content Security Policy beperkt de schade van geïnjecteerde bronnen. cside werkt op een andere laag en bewaakt de third-party scripts die een pagina laadt: de hybride proxy analyseert elke payload, kan kwaadaardig gedrag in real time blokkeren en houdt forensische verslagen bij die PCI DSS 6.4.3 en 11.6.1 ondersteunen. Het vult encoding en sanitatie in je eigen templates aan, in plaats van ze te vervangen.

Definitie

Is HTML-injectie hetzelfde als cross-site scripting?

Ze overlappen maar zijn niet identiek. Beide komen voort uit onge-escapete invoer die de pagina bereikt. XSS voert specifiek de JavaScript van de aanvaller uit, terwijl HTML-injectie elke geïnjecteerde markup omvat, inclusief gevallen waarin scripts worden weggefilterd maar andere tags nog renderen. Elke XSS is een vorm van HTML-injectie, maar niet elke HTML-injectie leidt tot script-uitvoering.

Definitie

Kan HTML-injectie gevaarlijk zijn als de aanvaller geen JavaScript kan uitvoeren?

Ja. Zonder enig script kan een aanvaller een nep-inlogformulier injecteren voor phishing op de pagina, inhoud bekladden, misleidende links of afbeeldingen inbedden, of loshangende markup en CSS gebruiken om data zoals anti-CSRF-tokens te exfiltreren. Content-spoofing op een vertrouwd domein is juist zo overtuigend omdat de URL echt is.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo