Gehackt via het contactformulier: zo maak je je website veilig
Een klein formulier, grote gevolgen
Na het recente incident bij RIVM, waarbij een webformulier werd misbruikt en de site tijdelijk offline moest, vragen veel kleine organisaties zich af: kan dit ons ook overkomen? Het eerlijke antwoord: ja, als je formulierketen niet strak is ingericht. De route van browser naar plugin, e‑mail, database en externe koppelingen is langer dan je denkt. Elke schakel is een kans op misbruik, maar ook een plek om slim te hardenen.
Begrijp de keten, verklein de aanvalsvlakken
Een WordPress‑formulier doet zelden maar één ding. Het valideert invoer, slaat op in de database, verstuurt e‑mail via SMTP en triggert API’s voor CRM of nieuwsbrief. Door per stap het principe minimaal noodzakelijk toe te passen, haal je de angel eruit zonder de marketing te hinderen.
1. Valideer en saneer aan de serverzijde
Client‑side controles zijn nuttig voor gebruikersgemak, maar beveiliging begint server‑side. Werk met whitelists (alleen wat mag), strip HTML, en escape output. Beperk uploads tot expliciete bestandstypen, zet antivirus‑scan aan en voorkom uitvoerbare bestanden in uploadmappen. SVG’s zijn handig, maar vaak een risico: alleen toestaan als je ze sanitize of ze helemaal uitschakelt.
2. Rem bots en misbruik af
Combineer een onzichtbare CAPTCHA (v3 of hCaptcha) met rate‑limiting: max. X submits per IP of per sessie in korte tijd. Een simpele honeypot‑field tegen bots en throttling via je WAF of security‑plugin vermindert ruis drastisch en houdt je mailserver schoon.
3. Beperk rechten van sleutels en integraties
Gebruik voor elke koppeling een aparte API‑sleutel met alleen-lezen of alleen‑schrijf rechten die echt nodig zijn. Bewaar secrets buiten de database, liefst via environment variables of wp-config. Rotatie per kwartaal en directe intrekking bij incidenten geeft grip. Voor e‑mail: stuur via een SMTP‑provider met app‑wachtwoord, niet met admin‑logins.
4. Zorg dat mail klopt: SPF, DKIM en DMARC
Formulieren die mailen zonder juiste authenticatie belanden in spam of worden misbruikt voor spoofing. Publiceer SPF, teken uitgaande mail met DKIM en zet een DMARC‑beleid met rapportage aan. Een SMTP‑plugin die op domeinniveau tekent maakt het verschil tussen afleveren en afketsen.
5. Zet een WAF en WordPress‑hardening in
Blokkeer bekende payloads, beperk POST‑verkeer tot formulierreeksen, schakel xmlrpc uit als je het niet nodig hebt en beperk REST‑API‑toegang waar mogelijk. Directory‑indexing uit, file‑edit in wp‑admin uit. Minder aanvalsoppervlak, minder zorgen.
6. Update, test en monitor
Werk met een staging‑omgeving voor plugin‑updates, houd alleen noodzakelijke plugins aan en log inzendingen en fouten. Alarmeer bij pieken in 4xx/5xx of plotselinge submit‑spikes. Nonces en replay‑bescherming op webhooks voorkomen hergebruik van verzoeken.
Snelle auditcheck
- Server‑side validatie en HTML‑sanitatie ingeschakeld
- CAPTCHA + rate‑limit actief; honeypot aanwezig
- API‑sleutels per koppeling, beperkt in scope, periodiek geroteerd
- SMTP met SPF/DKIM/DMARC correct ingericht
- WAF‑regels en WordPress‑hardening toegepast
- Staging voor updates, logging en alerts geconfigureerd
Van risico naar routine
Een veilig formulier hoeft geen groot project te zijn. Begin klein, met wat het meeste oplevert: invoer goed controleren, e-mailverzending via de juiste route, en misbruik automatisch afremmen. Als dat staat, wordt alles daarna routine. Net als updates of back-ups.
Bij Rendar helpen we organisaties om dat fundament te leggen. Vaak is een korte sessie genoeg om te zien waar de zwakke plekken zitten en hoe je ze dicht. Denk aan het goed instellen van SPF/DKIM, het beperken van API-rechten of het testen van je formulier op staging. Daarna kun je met vertrouwen verder bouwen, zonder dat het onderhoud een blok aan je been wordt.
Twijfel je of jouw formulierketen veilig is? Vraag een korte check aan en weet binnen een uur waar je aan toe bent.
Conclusie
Een veilig webformulier draait om discipline per schakel. Door valideren, beperken en monitoren consequent toe te passen, wordt misbruik onwaarschijnlijk en blijft je site online. Begin vandaag met de drie stappen die het meeste effect geven en bouw van daaruit verder.