Geheime sleutels in de browser.
API-sleutels van betaalproviders, AI-diensten of databanken die in de frontendcode staan, zichtbaar voor iedereen die de broncode van de pagina opent.
Met AI bouw je vandaag in een paar dagen een applicatie die vroeger maanden kostte. Dat prototype werkt — op je laptop, voor jou, met testgegevens. Maar zodra er echte gebruikers inloggen, echte klantgegevens in staan of het gekoppeld wordt aan je boekhouding, gelden er andere regels. Ik controleer wat je gebouwd hebt, maak het veilig, zet het online en koppel het aan de rest van je bedrijf.
Een app die werkt, voelt klaar. Maar "het werkt" betekent bij een AI-prototype meestal: het doet wat je vroeg, op de manier die je testte. Wat je niet vroeg, zit er vaak ook niet in.
Wie mag welke gegevens zien? Wat gebeurt er als iemand de app op een manier gebruikt die je niet voorzien had? Waar staan de sleutels van je betaalprovider? Wie merkt het als de app om drie uur 's nachts crasht? Wat als je volgende maand een factuur van je AI-provider krijgt die tien keer hoger ligt dan verwacht?
Een AI-tool beantwoordt die vragen alleen als je ze stelt. En om ze te stellen, moet je weten dat ze bestaan.
Niet altijd. Gebruik je de app enkel intern, met een handvol collega's, zonder klantgegevens en zonder koppeling aan andere systemen? Dan is het risico beperkt en kan je er waarschijnlijk gewoon mee verder.
Het wordt anders zodra een van deze dingen waar is: er loggen mensen in van buiten je bedrijf, er staan persoonsgegevens of betaalgegevens in, de app praat met je boekhouding, je CRM of je webshop, of je bedrijf gaat er echt op draaien. Dan wil je weten wat er onder de motorkap zit.
API-sleutels van betaalproviders, AI-diensten of databanken die in de frontendcode staan, zichtbaar voor iedereen die de broncode van de pagina opent.
De app toont elke gebruiker enkel zijn eigen gegevens — maar de databank zelf laat iedereen alles opvragen. Wie weet waar hij moet kijken, ziet de gegevens van al je klanten.
De adminknop is onzichtbaar voor gewone gebruikers, maar de achterliggende actie controleert niet wie ze uitvoert. Wie de juiste oproep kent, kan ze gewoon doen.
Een chatfunctie of generatieknop die iedereen onbeperkt kan aanroepen. Eén script van een kwaadwillige bezoeker, en je AI-budget van de maand is op een avond weg.
De gegevens staan op één plaats. Gaat daar iets mis, dan ben je alles kwijt.
De app crasht, maar niemand weet het tot een klant belt. Of erger: hij crasht stil, en gegevens gaan verloren zonder dat iemand het merkt.
Een sleutel die ooit in de code stond en later verwijderd werd, staat nog altijd in de geschiedenis van de repository.
Klantgegevens die naar een extern taalmodel gestuurd worden, zonder dat daar een verwerkersovereenkomst of een bewuste keuze achter zit.
Elke aanpassing gaat rechtstreeks naar de live versie. Een kleine fout raakt meteen al je gebruikers.
Ik neem de code, de databank en de hosting door en lever een rapport op: wat er misloopt, hoe ernstig het is, en in welke volgorde je het best aanpakt. Vaste prijs, vaste doorlooptijd. Je bent daarna niet verplicht om met mij verder te gaan — het rapport is bruikbaar voor elke developer.
Ik pak de problemen uit de scan aan, in volgorde van ernst. Daarna zet ik de app op een stabiele, beveiligde server met een aparte testomgeving, automatische back-ups en een deployproces waarbij een aanpassing niet meteen je live versie raakt.
Ik koppel de app aan de systemen die je al gebruikt — boekhouding, CRM, betaalprovider, e-mail — zodat gegevens niet meer overgetypt worden. En ik zet foutmonitoring op, zodat een probleem opvalt voor je klant het merkt.
Na oplevering is een onderhoudscontract mogelijk. De code blijft van jou, en je team kan er gewoon mee verder bouwen — met of zonder AI.
Bijna nooit. Een AI-prototype is een waardevol vertrekpunt: de logica is uitgedacht, de schermen staan er, en je weet wat je wil. Wat ontbreekt, is meestal de laag eronder — beveiliging, infrastructuur, koppelingen en opvolging. Die bouw ik erbij, zonder je werk weg te gooien.
Soms is een deel van de app wel te wankel om op verder te bouwen. Dan zeg ik dat in de scan, met uitleg waarom en wat het alternatief kost. Die keuze maak jij.
AI-tools zoals Lovable, Bolt, v0, Cursor en Claude Code leveren apps af in verschillende technologieën. De meeste draaien op React, Next.js of Vue, met een databank zoals Supabase of PostgreSQL. Mijn eigen specialisatie is Laravel en PHP, maar voor een scan, beveiliging, deployment en koppelingen werk ik ook in die andere stacks. Wat ik controleer — toegangsregels, sleutels, back-ups, monitoring — is in elke technologie hetzelfde probleem.
Dit is geen formele security-audit en geen penetratietest. Ik spoor de fouten op die in AI-gebouwde apps het vaakst voorkomen en los ze op, maar ik lever geen certificaat of attest af. Heb je dat nodig voor een klant, een verzekeraar of een compliance-verplichting, dan verwijs ik je door naar een gespecialiseerd securitybedrijf — en maak ik je app graag eerst klaar, zodat die audit niet meteen een lange lijst oplevert.
Niet per definitie. AI-tools schrijven vaak degelijke code voor wat je vraagt. Het risico zit in wat je niet vroeg: toegangsregels, sleutelbeheer, limieten, back-ups. Hoe beter je die dingen zelf al benoemde tijdens het bouwen, hoe kleiner de kans op problemen. Een scan maakt dat concreet.
Een scan heeft een vaste prijs en een vaste doorlooptijd, zodat je vooraf weet waar je aan toe bent. Het resultaat is een rapport met de gevonden problemen, hun ernst en de volgorde waarin je ze het best aanpakt. Dat rapport is bruikbaar voor elke developer, ook als je daarna niet met mij verdergaat.
Ja. Die tools leveren meestal apps af in React, Next.js of Vue, vaak met Supabase als databank. Mijn specialisatie is Laravel, maar de problemen die ik controleer — toegang, sleutels, back-ups, monitoring, koppelingen — zijn in elke stack dezelfde, en ik werk er ook in voor scans, beveiliging en deployment.
Bijna nooit. Meestal ontbreekt vooral de laag onder de app: beveiliging, infrastructuur, back-ups en monitoring. Die kan je toevoegen zonder het bestaande werk weg te gooien. Is een deel toch te wankel om op verder te bouwen, dan staat dat met uitleg in de scan en beslis jij wat er gebeurt.
Nee. Ik spoor de gebruikelijke fouten in AI-gebouwde apps op en los ze op, maar ik lever geen formeel attest af. Heb je een audit nodig voor een klant of een verplichting, dan verwijs ik je door naar een gespecialiseerd bedrijf. Een app die eerst productieklaar gemaakt is, doorstaat zo'n audit wel veel vlotter.
Dat hangt af van welke gegevens, naar welke provider en onder welke afspraken. Persoonsgegevens naar een externe dienst sturen vraagt onder de GDPR om een verwerkersovereenkomst en een bewuste keuze. Ik breng in kaart welke gegevens je app vandaag doorstuurt, zodat je die keuze met kennis van zaken kan maken.
Ja, en dat is de bedoeling. Ik maak de app klaar zonder ze af te sluiten. Je team kan verder bouwen, en met een testomgeving en foutmonitoring op zijn plaats is de kans kleiner dat een nieuwe aanpassing iets stuk maakt zonder dat iemand het merkt.
Vertel kort wat er nu te lang duurt. Ik laat je binnen de twee werkdagen weten of ik je daarbij kan helpen — en zo niet, wie dat wel kan.
Pieter-Jan Claeysens
Spaanderstraat 39
8710 Wielsbeke
BE 1031.944.990