Een onderzoek heeft aangetoond dat door AI gegenereerde code 1,7x vaker ernstige fouten bevat en 2,74x gevoeliger is voor beveiligingsproblemen dan door mensen geschreven code. Als je iets hebt gebouwd met Cursor, Claude Code of GitHub Copilot, bevat je project waarschijnlijk minstens één van de vijf meest voorkomende beveiligingsproblemen. Hier zijn ze en hoe je ze kunt vinden.
- 45% van AI-gegenereerde code bevat minstens één beveiligingskwetsbaarheid
- 1,7x vaker ernstige fouten vergeleken met door mensen geschreven code
- 2,74x gevoeliger voor beveiligingsproblemen specifiek
- Meest voorkomend: Hardcoded API-sleutels, ontbrekende inputvalidatie, geen rij-niveau beveiliging
- Tijd voor audit: 2-3 uur voor een typisch vibe-coded project
- Laatst geverifieerd: April 2026
Waarom AI-code kwetsbaar is
AI-coderingshulpmiddelen optimaliseren voor "werkt het?" niet "is het veilig?" Als je Cursor vraagt om "gebruikersauthenticatie toe te voegen", genereert het code die gebruikers verifieert. Het voegt niet automatisch rate limiting, input sanitization, CSRF-beveiliging of veilig sessiebeheer toe — omdat je daar niet om hebt gevraagd.
De AI schrijft precies wat je beschrijft. Beveiliging vereist dat je dingen beschrijft waar je niet automatisch aan denkt — randgevallen, kwaadwillige invoer, ongeautoriseerde toegangspatronen. Als het niet in je prompt staat, zit het niet in je code.
De 5 meest voorkomende kwetsbaarheden
1. API-sleutels hardcoded in frontend-code. AI plaatst API-sleutels vaak rechtstreeks in client-side JavaScript of React-componenten. Iedereen kan DevTools van de browser openen en ze zien. Oplossing: Verplaats alle sleutels naar omgevingsvariabelen (.env bestanden) en benader ze alleen aan de serverkant. Tijd: 15 minuten.
2. Geen rij-niveau beveiliging op databases. Als je Supabase gebruikt (gebruikelijk in vibe coding), geeft AI-gegenereerde code vaak elke geverifieerde gebruiker toegang tot de gegevens van elke andere gebruiker. Oplossing: Schakel Row Level Security in en voeg beleid per gebruiker toe. Tijd: 30 minuten.
3. Geen server-side inputvalidatie. Formulieren accepteren alles — scripts, oversized payloads, SQL-injectie pogingen. De AI voegt validatie aan de client-side toe (wat gebruikers kunnen omzeilen) maar slaat server-side validatie over. Oplossing: Voeg Zod-schema's of vergelijkbare validatie toe op elk API-endpoint. Tijd: 30 minuten per endpoint.
4. Geen rate limiting. Iedereen kan je API 1.000 keer per seconde aanroepen. Geen throttling, geen bescherming tegen misbruik. Oplossing: Voeg rate limiting toe via Upstash Redis of vergelijkbaar. Tijd: 20 minuten.
5. Onbeveiligde routes. Dashboardpagina's, beheerpanelen en gebruikersdataeindpunten laden zonder te controleren of de gebruiker is ingelogd. Oplossing: Voeg authenticatiemiddleware toe aan elke beveiligde route. Tijd: 15 minuten.
Haal je voordeel uit dit artikel? We publiceren elke week beveiligingshandleidingen voor AI-gebouwde projecten. Sluit je aan bij lezers die veilig bouwen →
Je project controleren
Ga door deze checklist voor elk project gebouwd met AI-coderingshulpmiddelen:
Zoek je hele codebase af naar hardcoded sleutels. Voer uit: grep -r "sk-" . && grep -r "api_key" . && grep -r "secret" . in je projectmap. Alle overeenkomsten in frontend-bestanden zijn kritieke kwetsbaarheden.
Controleer elk API-endpoint op inputvalidatie. Open elk API-routebestand. Als het rechtstreeks req.body gebruikt zonder validatie, is het kwetsbaar.
Verifieer databasebeveiliging. Als je Supabase gebruikt, controleer het Authentication → Policies tabblad. Als er geen RLS-beleid is, kan elke gebruiker de gegevens van elke andere gebruiker zien.
Test authenticatie op elke pagina. Open je browser in incognito-modus (niet ingelogd) en navigeer naar elke pagina in je app. Als een dashboard- of gebruikersspecifieke pagina laadt, is die route onbeveiligd.
Controleer op rate limiting. Probeer je API-endpoint 100 keer achter elkaar snel aan te roepen met behulp van een eenvoudig script. Als alle 100 succesvol zijn, heb je geen rate limiting.
Voor een volledige beveiligingschecklist, zie onze volledige gids voor het beveiligen van vibe-coded apps. Voor de meest voorkomende fouten en hun oplossingen, lees 5 beveiligingsfouten die elke vibe coder maakt.
De mentaliteitsverandering
AI schrijft code die werkt. Jij moet ervoor zorgen dat de code veilig is. Dit zijn twee verschillende vaardigheden. Elke prompt naar een AI-coderingshulpmiddel moet beveiligingsvereisten bevatten naast functionele vereisten. "Voeg gebruikersauthenticatie toe met rate limiting, inputvalidatie en beveiligde routes" produceert dramatisch veiliger code dan "voeg gebruikersauthenticatie toe."
Onze Prompt Optimizer kan je helpen deze beveiligingsspecificaties automatisch aan elke codeerprompt toe te voegen.
Dit doen we elke week. Één diepgaande analyse van AI-hulpmiddelen, workflows en eerlijke meningen — geen hype, geen vulling. Sluit je bij ons aan →
Openbaarmaking: Sommige koppelingen in dit artikel zijn affiliate-koppelingen. We bevelen alleen hulpmiddelen aan die we persoonlijk hebben getest en regelmatig gebruiken. Zie ons volledige openbaarbeleid.