Naar de inhoud
esif.nl, kennisbank security en intelligence

Afkortingen

WAF (web application firewall)

Bijgewerkt op · Door Maarten van den Bos

WAF staat voor web application firewall: een beveiligingslaag die het HTTP-verkeer naar een website of webapplicatie controleert. Een WAF vergelijkt elk verzoek met regels en blokkeert verzoeken die lijken op bekende aanvallen, zoals SQL-injectie en cross-site scripting. Zo beschermt een WAF de applicatie ook wanneer de code zelf nog kwetsbaarheden bevat.

Wat is een WAF?

Een web application firewall staat tussen het internet en een webapplicatie, zoals een webwinkel, klantportaal of inlogpagina. Een gewone firewall kijkt vooral naar IP-adressen en poorten. Een WAF kijkt dieper: naar de inhoud van elk HTTP-verzoek, zoals de URL, de headers en de gegevens die iemand in een formulier invult.

OWASP, de internationale stichting voor veilige webapplicaties, omschrijft een WAF als een applicatiefirewall voor HTTP-applicaties die “a set of rules” toepast op het verkeer. Die regels richten zich meestal op bekende aanvallen, zoals SQL-injectie en cross-site scripting. OWASP benadrukt ook het verschil met een proxy: een proxy beschermt vooral gebruikers, een WAF beschermt servers.

Een WAF bestaat in verschillende vormen:

VormWaar draait de WAF?Typisch gebruik
ApplianceEigen hardware in het datacenterGrote organisaties met eigen infrastructuur
Plug-in of moduleOp de webserver zelfKleinere omgevingen, bijvoorbeeld met ModSecurity
ClouddienstBij een externe aanbieder, vóór de websiteWebsites die ook tegen DDoS-aanvallen beschermd moeten worden

Een WAF lost geen fouten in de applicatie op. Het is een extra laag die aanvallen afvangt terwijl ontwikkelaars de kwetsbaarheid zelf repareren. Een WAF die ook API’s en bots beschermt, heet een WAAP.

Hoe werkt een WAF?

Een WAF werkt als een filter dat elk verzoek controleert voordat het bij de webapplicatie aankomt:

  1. Ontvang het HTTP-verzoek van de bezoeker, meestal na het ontsleutelen van het HTTPS-verkeer.
  2. Ontleed het verzoek in onderdelen: URL, headers, cookies en de inhoud (body).
  3. Vergelijk elk onderdeel met regels, zoals de OWASP Core Rule Set, of met een model van normaal verkeer.
  4. Blokkeer het verzoek, laat het door of log het voor analyse.
  5. Stuur toegestane verzoeken door naar de webapplicatie.

NIST noemt een WAF een eerste stap (“an excellent first step”), maar geen complete oplossing (bron: NIST SP 800-228, 2025). Een WAF herkent een verzoek dat op een SQL-injectie lijkt, maar weet niet welke velden een applicatie verwacht. NIST noemt ook 2 nadelen (bron: NIST SP 800-228, 2025): een WAF kost rekenkracht en vertraging, en werkt vooral op bekende aanvalspatronen. Nieuwe of verhulde aanvallen glippen er soms doorheen.

Het NCSC noemt de applicatiefirewall in de ICT-beveiligingsrichtlijnen voor webapplicaties (2024), bijvoorbeeld om onnodige HTTP-methoden te blokkeren. Bij DDoS-aanvallen adviseert het NCSC een WAF als aanvulling “om aanvallen te herkennen en IP-adressen te blokkeren”.

Voorbeeld uit de praktijk

In december 2021 werd de kwetsbaarheid Log4Shell (CVE-2021-44228) in het veelgebruikte Java-onderdeel Log4j bekend. Het NCSC hield op GitHub een overzicht bij van kwetsbare software, waar ook de CSIRTs uit andere EU-landen aan bijdroegen (bron: ENISA, 2022). Veel organisaties konden niet direct al hun software bijwerken.

Een WAF was in die weken een tijdelijke maatregel. Het NCSC-overzicht noemt onder meer regels uit de OWASP Core Rule Set die aanvalspatronen voor Log4Shell blokkeren. Het overzicht waarschuwt ook dat aanvallers de aanval op veel manieren konden verhullen, zodat een regel “may not detect all forms of exploitation” (bron: NCSC-NL, 2021). De WAF kocht dus tijd, maar de echte oplossing bleef de update van Log4j.

WAF in de praktijk van een security-professional

Een security architect bepaalt waar de WAF in het netwerk komt en welke applicaties erachter staan. NIST adviseert om WAF-regels zo dicht mogelijk bij de applicatie af te dwingen, passend bij een zero trust-aanpak. Een beheerder of security engineer stelt de regels af: te streng blokkeert echte klanten, te ruim laat aanvallen door.

In een SOC (security operations center) bekijkt een SOC-analist de meldingen van de WAF. Een piek in geblokkeerde verzoeken kan wijzen op een scan of een gerichte aanval. Pentesters en ethical hackers testen of een WAF te omzeilen is. Wie wil werken aan de beveiliging van webapplicaties, vindt de basis in een cybersecurity-opleiding.

Veelgestelde vragen

Wat zijn firewalls?

Een firewall is een beveiligingssysteem dat netwerkverkeer controleert en ongewenst verkeer tegenhoudt op basis van regels. Er zijn verschillende soorten: een netwerkfirewall filtert op IP-adressen en poorten, een web application firewall (WAF) controleert de inhoud van verkeer naar webapplicaties. Firewalls bestaan als hardware, software of clouddienst.

Wat is het verschil tussen een WAF en een gewone firewall?

Een gewone firewall bepaalt welk verkeer het netwerk in en uit mag, op basis van IP-adressen, poorten en protocollen. Een WAF kijkt naar de inhoud van HTTP-verzoeken en herkent aanvallen op webapplicaties, zoals SQL-injectie. Organisaties gebruiken meestal allebei: de firewall voor het netwerk, de WAF voor de website.

Beschermt een WAF tegen DDoS-aanvallen?

Gedeeltelijk. Een WAF kan DDoS-aanvallen op applicatieniveau herkennen, zoals grote aantallen verzoeken naar 1 pagina, en de IP-adressen blokkeren. Tegen grote aanvallen die de internetverbinding overbelasten helpt een WAF niet. Daarvoor adviseert het NCSC een scrubbingcentrum (wasstraat) of een CDN met ingebouwde DDoS-bescherming.

Wat is een web application firewall?

Een web application firewall (WAF) is een firewall die het HTTP-verkeer naar een website of webapplicatie controleert. De WAF blokkeert verzoeken die lijken op bekende aanvallen, zoals SQL-injectie en cross-site scripting. Een WAF draait als apparaat, als module op de webserver of als clouddienst vóór de website.

Bronnen

  1. OWASP: Web Application Firewall
  2. NIST SP 800-228: Guidelines for API Protection for Cloud-Native Systems (2025)
  3. NCSC: ICT-beveiligingsrichtlijnen voor webapplicaties (2024)
  4. NCSC: Technische maatregelen voor de continuïteit van online diensten
  5. NCSC-NL: Log4shell detectie en mitigatie (GitHub, 2021)
  6. ENISA: Log4j vulnerability, update from the CSIRTs Network (2022)

Gerelateerde begrippen

  • WAAP (web application and API protection)

    WAAP staat voor web application and API protection: een beveiligingsdienst die websites en API's tegen aanvallen van buitenaf beschermt. Een WAAP combineert een web application firewall, botdetectie, DDoS-mitigatie en API-bescherming in 1 product. Meestal draait een WAAP als clouddienst tussen het internet en de applicaties van een organisatie.

  • Firewall

    Een firewall is een apparaat of programma dat het verkeer tussen 2 netwerken controleert, meestal tussen internet en een thuis- of bedrijfsnetwerk. De firewall vergelijkt elk verzoek met ingestelde regels en laat alleen toegestaan verkeer door. Zo houdt een firewall ongewenste verbindingen tegen, maar beschermt hij niet tegen alles.

  • API-security

    API-security is het beveiligen van API's: de koppelingen waarmee apps, websites en systemen gegevens uitwisselen. Het doel is dat alleen bevoegde gebruikers en systemen precies bij de gegevens en functies kunnen die voor hen bedoeld zijn. Belangrijke maatregelen zijn authenticatie, autorisatie per object, versleuteling, limieten op gebruik en een actueel overzicht van alle API's.

  • DDoS-bescherming

    DDoS-bescherming is het geheel van maatregelen dat een website, server of netwerk bereikbaar houdt tijdens een DDoS-aanval. Denk aan filtering bij de internetprovider, een wasstraat die kwaadaardig verkeer wegfiltert, een content delivery network, rate limiting en een web application firewall. Een aanval voorkomen kan niet, de gevolgen beperken wel.

  • SQL-injectie

    SQL-injectie is een aanval op een website of applicatie waarbij een aanvaller eigen SQL-code invoert in bijvoorbeeld een zoekveld, inlogveld of webadres. Als de applicatie die invoer niet scheidt van haar eigen databaseopdracht, voert de database de code van de aanvaller uit. Die kan dan gegevens inzien, wijzigen of verwijderen die niet voor hem bedoeld zijn.