Case · Vibe code check
Eerst laten toetsen, dan pas live. Zo doe je dat slim.
Een adviesbureau bouwde zelf een AI-readiness-assessment in Lovable en wilde hem in de eigen WordPress-site. In plaats van hem meteen live te zetten, lieten ze hem eerst toetsen. Verstandig: geen kwaadaardige code, maar wel vijf punten die vóór livegang geregeld moesten zijn.
Levert de review geen verbeterpunten op, dan crediteren we hem.

Leon Katz · CIO
Deze check is uitgevoerd door Leon Katz.
De situatie: één HTML-bestand, met alles erin
De opdrachtgever leverde een zelfstandig HTML-bestand aan: een interactieve, meerstaps vragenlijst die de bezoeker in de browser doorloopt, met een leadformulier (naam, zakelijk e-mailadres, functie, branche). Antwoorden, scores en leadgegevens gaan vanuit de browser rechtstreeks naar een externe clouddatabase; benchmarkcijfers komen uit diezelfde database terug.
Werkend, oogt goed, iedereen enthousiast. En dan de echte vraag: kan dit veilig live, in een site waar klanten hun gegevens achterlaten?
Wat we aantroffen
Vijf punten vóór livegang
Publieke sleutel in de code
De toegangssleutel tot de database staat in de broncode. Of ingezonden namen en e-mailadressen door derden uit te lezen zijn, hangt dan volledig af van de rechten aan databasezijde. Bij één verkeerde instelling ligt alles open.
Persoonsgegevens naar een clouddienst
Er worden persoonsgegevens verwerkt bij een externe partij: dat valt onder de AVG. Verwerkersovereenkomst, privacyverklaring en hostinglocatie binnen de EU waren nog niet geregeld.
Onbeperkt inzenden
Iedere browser mag onbeperkt inzenden. Geautomatiseerd misbruik vervuilt de database en de benchmarkcijfers, en kost geld als de dienst per verzoek afrekent.
Afhankelijk van een externe CDN
Een script wordt bij elk bezoek van een derde partij geladen: een afhankelijkheid, en het IP-adres van elke bezoeker gaat mee.
Vijfde punt: de opmaak in het bestand botst met het WordPress-thema. Direct plakken in een HTML-blok geeft stijl- en scriptconflicten, dus de integratie moest geïsoleerd.
Het advies
Van bevinding naar concrete maatregel
- 01
Rechten dichtzetten
De anonieme rol mag alleen toevoegen, niet lezen; leesrechten alleen op een weergave zonder persoonsgegevens. Actief getest, niet aangenomen. Plus een limiet op verzoeken per sleutel als vangnet.
- 02
AVG op orde
Verwerkersovereenkomst met de databaseprovider, vermelding in de privacyverklaring, hosting binnen de EU, en een privacyverwijzing bij het formulier.
- 03
Misbruik afremmen
Rate limiting, een honeypot-veld en waar nodig een captcha; het script lokaal hosten in plaats van via de CDN.
- 04
Geïsoleerd integreren
Als statisch bestand buiten de WordPress-content, ingeladen via een iframe met strakke sandbox-rechten. Geen conflicten met thema of plugins, en een update is één bestand vervangen.
Checklist
Wat er vóór livegang afgevinkt moest zijn
- Rechten van de database geverifieerd en getest: anonieme rol kan geen persoonsgegevens uitlezen.
- Limiet op API-verzoeken ingesteld; testinzending komt correct binnen.
- Verwerkersovereenkomst gesloten, hostinglocatie gecontroleerd, privacyverklaring aangevuld.
- Externe bibliotheek lokaal gehost; honeypot en rate limiting ingericht.
- Iframe getest op desktop en mobiel, inclusief hoogtegedrag en foutscenario's (geblokkeerde scripts, onbereikbare database).
- Eén bronlocatie en één contactpersoon voor updates afgesproken.
Wat de check bewust niet is: een juridisch oordeel over de app zelf. De werking van de applicatie en de configuratie van de database blijven bij de opdrachtgever; wij toetsen, adviseren en integreren.
Dat het werkt, bewijst dat het idee klopt. Dat het veilig kan, is een tweede vraag, en die stelde deze opdrachtgever zelf, vóórdat er klanten in gingen. Dat is de pluim die deze case verdient: niet dat er punten waren (die zijn er altijd), maar dat ze gevonden werden voordat het ertoe deed.
Eerst toetsen, dan live. Zo doe je dat slim.
Verder lezen
De routes achter deze case
Vibe code check
De check voor apps gebouwd met AI-tools.
Van POC naar productie
Je eerste werkende versie klaar voor echte gebruikers.
Integratie in website/CMS
AI aangesloten op het systeem dat je al kent.
Ook iets gebouwd met AI?
Levert de review geen verbeterpunten op, dan crediteren we hem.