Word gematcht

Inputvalidatie

Verdediging

Geldigheidscontrole op invoergegevens. Een besturingstechniek bij het invoeren van gegevens, die wordt toegepast om invoergegevens, die onnauwkeurig, incompleet of onlogisch zijn, te herkennen.

Inputvalidatie is het proces waarbij alle gegevens die een gebruiker of extern systeem invoert in een applicatie worden gecontroleerd op correctheid, volledigheid en veiligheid voordat ze worden verwerkt. Het is een van de fundamentele beveiligingsmaatregelen in softwareontwikkeling en vormt de eerste verdedigingslinie tegen injection-aanvallen, de categorie kwetsbaarheden die al jarenlang in de OWASP Top 10 staat. Zonder inputvalidatie kan een aanvaller kwaadaardige code injecteren via invoervelden, URL-parameters, API-verzoeken of bestandsuploads, met potentieel desastreuze gevolgen zoals datadiefstal, systeemovername of volledige compromittering van de applicatie.

In de OWASP Top 10 van 2025 staat injection op de vijfde positie, een daling van twee plaatsen ten opzichte van eerdere edities. Ondanks deze daling treft injection in enige vorm 100% van de geteste applicaties, waarmee het de meest universeel aanwezige kwetsbaarheidscategorie blijft. De categorie omvat SQL injection met meer dan 14.000 bekende CVE's, cross-site scripting (XSS) met meer dan 30.000 CVE's, command injection, LDAP injection en de nieuwere prompt injection bij AI-systemen. Inputvalidatie is de eerste en meest effectieve maatregel om al deze aanvalstypen te voorkomen.

Hoe werkt inputvalidatie?

Inputvalidatie werkt door alle binnenkomende data te controleren tegen een set van regels voordat de data wordt verwerkt door de applicatie. Er zijn twee fundamentele benaderingen: allowlisting (whitelisting) en blocklisting (blacklisting).

Bij allowlisting definieer je precies welke invoer is toegestaan. Een veld voor een telefoonnummer accepteert alleen cijfers, plustekens en streepjes. Een veld voor een e-mailadres accepteert alleen tekens die voldoen aan het e-mailformat. Alle invoer die niet aan het gedefinieerde patroon voldoet, wordt afgewezen. Allowlisting is de veiligste aanpak omdat je expliciet bepaalt wat mag, in plaats van te proberen alles te bedenken wat niet mag.

Bij blocklisting definieer je welke invoer niet is toegestaan. Je blokkeert bijvoorbeeld SQL-keywords als "SELECT", "DROP" en "UNION", of HTML-tags als "