Kort samengevat. Een AI-programmeertool bezorgt je in een weekend een werkend prototype, maar "werkt in de demo" en "veilig genoeg voor productie" zijn twee verschillende dingen. In vrijwel elke met AI gebouwde app duiken dezelfde drie problemen op: beveiligingslekken (blootgestelde sleutels, ontbrekende autorisatie, injectie), op hol geslagen API-kosten (5–20× te veel door niet-gecachte, niet-gebundelde, ongebonden aanroepen), en datalekken (gevoelige informatie in logs, API-antwoorden die te veel prijsgeven, blootstelling aan derden). Je gooit het prototype niet weg — je beoordeelt het, herstelt die drie categorieën, en levert op. Dit stuk is het draaiboek: wat er breekt, waarom, en het pad stap voor stap van prototype naar productie. Geef je het liever uit handen, dan is dat precies wat een audit van AI-code doet.
Wil je alleen het proces, spring dan naar hoe je het opleveren aanpakt.
Het prototype dat werkt in de demo en breekt in productie
Je hebt iets echts gebouwd. Cursor, Bolt, Lovable of een lange sessie met ChatGPT maakte in dagen in plaats van maanden een draaiende app van een idee. Het ziet er goed uit. Het werkt op jouw machine. Je demonstreert het aan vroege gebruikers of investeerders en de reacties zijn goed. Dus richt je er een domein op, zet je het op productie, en begin je er echte mensen heen te sturen.
Daar begint het probleem — en niet omdat je iets fout deed. AI-agents zijn buitengewoon goed in code produceren die werkt. Ze zijn niet goed in code produceren die productieklaar is, want dat zijn verschillende doelen. "Werkt" betekent dat het gelukkige pad loopt. "Productieklaar" betekent dat het een aanvaller, een verkeerspiek, een verkeerde invoer en een factuurperiode overleeft — en niets daarvan komt in een demo voor.
Dit is geen randverschijnsel. Veracode testte 100+ LLMs en vond dat 45% van de gegenereerde code zakt voor beveiligingstests. De analyse van Apiiro uit 2025 vond dat developers die AI gebruiken inloggegevens bijna twee keer zo vaak blootstellen. Onderzoekers van Stanford vonden dat developers die AI-assistenten gebruiken minder veilige code schrijven terwijl ze er zekerder van zijn dat die veilig is. Dat vertrouwensgat is het gevaarlijke deel: de demo voelt afgerond, dus de 20% die dat niet is blijft onzichtbaar tot hij je geld kost.
Het goede nieuws is dat het gat voorspelbaar is. Na tientallen door AI gegenereerde codebases te hebben beoordeeld, vallen de fouten in drie bakken uiteen — dezelfde drie die het prototype nooit reden had af te handelen.
De drie dingen die breken
1. Beveiligingslekken
AI-tools optimaliseren op de kortste weg naar een werkende functie, en die kortste weg is vrijwel nooit de veilige.
- Blootgestelde sleutels en geheimen. API-sleutels, databasegegevens en dienstentokens worden hard in de broncode gezet, in bundels aan de clientkant gebakken, of in
.env-bestanden vastgelegd. Eén gelekte sleutel van een derde partij kan binnen uren duizenden euro's aan ongeautoriseerd gebruik opleveren — of een aanvaller je gegevensopslag in handen geven. - Authenticatie zonder autorisatie. Er is een inlogscherm, dus het voelt veilig. Maar de backend controleert vaak niet wie wat mag. Endpoints accepteren elk verzoek; wijzig een ID in de URL en je leest andermans gegevens. Dit — gebroken autorisatie op objectniveau — is het meest voorkomende gebrek dat we vinden, en het staat niet voor niets bovenaan de OWASP API Security-lijst.
- Injectie. SQL-injectie, XSS en prompt injection zitten overal in met AI gebouwde code, omdat modellen vrolijk gebruikersinvoer rechtstreeks in query's, HTML of LLM-prompts plakken. Eén niet-ontsmet endpoint kan de hele database blootleggen of een aanvaller je AI laten sturen.
- Onveilige opslag. Persoonsgegevens in leesbare tekst, sessietokens in
localStorage, wachtwoorden gehasht met MD5 of helemaal niet. AI grijpt standaard naar de eenvoudigste uitvoering, en die is zelden de veilige. (We schreven een volledige uiteenzetting over hoe gegevens werkelijk versleuteld horen te worden, zowel in rust als onderweg — dat is de bron waar we klanten naartoe sturen.)
2. Op hol geslagen API-kosten
Dit is degene die een lancering stilletjes failliet laat gaan in plaats van hem te compromitteren.
- Overbodige aanroepen. Met AI gebouwde apps roepen hetzelfde betaalde endpoint — geocodering, wisselkoersen, een LLM, een verificatie-API — keer op keer aan voor gegevens die ze al hebben. Geen caching, geen onthouden. We vinden geregeld apps waarin 60–80% van de API-uitgaven pure verspilling is.
- Geen budgetten of verzoeklimieten. Geen plafond per gebruiker, geen daglimiet, geen noodrem. Eén enthousiaste gebruiker, een scraper of een bot kan je hele maandbudget in een middag opmaken. De AI heeft geen idee van je prijsniveaus of je resterende middelen, dus bouwt hij nooit vangrails.
- Geen bundeling. Losse verzoeken afvuren in een lus in plaats van het bundelendpoint gebruiken dat de aanbieder biedt. Op demoschaal is het onzichtbaar; op productieschaal is het een maandrekening van vijf cijfers.
De kosten van een app bouwen zijn één ding — de kosten van een niet-geoptimaliseerde app draaien zijn de verrassing waar oprichters door worden overvallen.
3. Datalekken
De categorie die van een stil succes een compliance-incident maakt.
- Gevoelige gegevens loggen. AI is dol op uitgebreid loggen. E-mailadressen, wachtwoorden, betaalgegevens en persoonsgegevens belanden in applicatielogs en foutopsporingsdiensten, vaak onbeperkt bewaard en leesbaar voor iedereen met toegang tot het dashboard.
- Te veel prijsgeven via API's. Endpoints die het complete gebruikersobject teruggeven — gehashte wachtwoorden, interne ID's, metadata — terwijl de front-end alleen een weergavenaam nodig had. GraphQL-endpoints zonder dieptelimiet waarmee een aanvaller je hele datamodel kan aflopen.
- Blootstelling aan derden. Analyse-, monitoring- en foutopsporingstools aangekoppeld zonder na te denken over wat daarheen stroomt. Gebruikersgedrag en persoonsgegevens verlaten je systeem zonder toestemming, en precies daarvoor zijn de boetes onder de AVG geschreven.
Hoe je een met AI gebouwd prototype naar productie brengt
Je bouwt niet opnieuw — dat gooit de 80% weg die de AI goed deed. Je beoordeelt het prototype, herstelt de drie categorieën hierboven op prioriteit, en levert op. Dit is het pad dat wij lopen.
Stap 1 — Bevries en baken af
De eerste ingeving na een goede demo is meer functies toevoegen. Weersta die. Code toevoegen aan een niet-beoordeelde basis vergroot alleen het oppervlak dat je straks moet herstellen. Zet de scope vast, geef leestoegang, en bepaal wat de beoordeling dekt — een volledige ronde, of een gerichte op de pijler die je het meest zorgen baart. Er verandert nog niets in productie.
Stap 2 — Geautomatiseerde scan
Statische analyse, scans op afhankelijkheden en geheimen, en kostenprofilering vangen de voor de hand liggende problemen snel: de vastgelegde API-sleutel, het pakket met een bekende CVE, het endpoint dat 300 keer per minuut wordt geraakt. Dit is de goedkope laag met veel volume.
Stap 3 — Handmatige beoordeling door een expert
De dure problemen verstoppen zich waar gereedschap ze niet ziet: een endpoint dat de juiste gegevens teruggeeft maar nooit controleert wie het vraagt, een facturatielus die klopt maar niet gecacht is, een koppeling met een derde partij die stilletjes persoonsgegevens naar buiten stuurt. Een mens leest de architectuur, de authenticatiestromen en de gegevenspaden. Dit is de stap die een audit van AI-code van een linter onderscheidt.
Stap 4 — Herstel op prioriteit
Bevindingen worden op ernst gesorteerd en in die volgorde hersteld. Eerst kritieke beveiligingslekken — een gelekte sleutel of het omzeilen van authenticatie is een noodgeval. Dan kostenbeheersing, want elke dag op 5–20× te veel is echt geld. Dan privacy en compliance. Jij beoordeelt en keurt elke wijziging goed voordat ze wordt samengevoegd; er gebeurt niets met je code zonder jouw akkoord.
Stap 5 — Lever met vertrouwen op
Test opnieuw tegen elke bevinding, bevestig dat de oplossingen standhouden, en rol uit. Zelfde product, zelfde met AI gebouwde fundament — nu gehard. Dat is het hele punt: je houdt de snelheid die de AI je gaf en voegt de duurzaamheid toe die hij niet kon leveren.
We hebben precies dit op echte bouwtrajecten gedraaid. Arcana, een streamende AI-chatclient, ging van prototype naar een opgeleverde app van productiekwaliteit — het weinig glamoureuze werk van streaming, authenticatie en gegevensverwerking harden is wat van een demo iets maakte waar mensen werkelijk op konden leunen.
Wat het kost en hoe lang het duurt
Een gerichte beveiligingsronde op een kleine app met één service kost 1–2 weken; een volledige audit van productiegereedheid — beveiliging, kosten, gegevens, prestaties, infrastructuur — op een doorsnee app met meerdere services kost 2–4 weken. Dat is een orde van grootte sneller en goedkoper dan de 3–6 maanden die een herbouw vanaf nul zou kosten, omdat je alles behoudt wat de AI goed deed en alleen herstelt wat hij fout deed.
Het denkmodel dat het waard is je eigen te maken: AI brengt je 80% van de weg in 5% van de tijd. De laatste 20% — beveiliging, kostenbeheersing, gegevensprivacy, foutafhandeling — is het volledige verschil tussen een demo en een product. Een audit koopt die 20% zonder het fundament weg te gooien. De volledige niveaus en tarieven staan op de pagina audit van AI-code.
Veelgestelde vragen
Lever op wat je al hebt gebouwd
Je deed het lastige deel — je vond iets dat het bouwen waard is en kreeg het draaiend. Laat die onzichtbare 20% van een echt succes geen datalek, verrassingsrekening of complianceprobleem maken. Haal het prototype door een audit van AI-code, herstel de drie dingen die breken, en zet het met vertrouwen voor echte gebruikers.
Heb je een met AI gebouwde app waarvan je het uitrollen spannend vindt, plan dan een gratis analyse. We vertellen je welke van de drie pijlers je grootste risico is, wat het kost om die te herstellen, en geven je een offerte met vaste scope — geen gok.

