Gratis checklist + prompts
Veilig bouwen met AI: 12 punten en 10 veilige prompts
Voor wie bouwt met Lovable, Bolt, v0 of Cursor. AI bouwt snel, maar controleert niet of het veilig is.
Pdf · 4 pagina's · 85 kB · zonder e-mailadres · bijgewerkt op
Veilig bouwen met AI betekent drie dingen. Toegangsregels op elke tabel, geen geheime sleutels in de browser en testen met twee accounts vóór livegang. Wie dat overslaat, loopt risico. In 2025 gaven 170 van 1.645 onderzochte Lovable-apps gegevens prijs zonder inlog. Uit onderzoek van USENIX Security 2025 bleek nog iets. 19,7% van de pakketten die taalmodellen aanraadden, bestond niet.
Twaalf punten om uw AI-app zelf na te lopen
Per punt leest u waarom het ertoe doet en hoe u het zelf controleert. De meeste punten kosten een paar minuten.
Toegangsregels staan aan op elke tabel
Staan ze uit, dan kan iedereen met de publieke sleutel uit uw app alle gegevens lezen of wijzigen. Zo gaven in 2025 170 van 1.645 onderzochte Lovable-apps gegevens prijs.
Zo controleert u het: Open in Supabase de Table Editor: elke tabel met klantgegevens toont “RLS enabled”. Bij Firebase staat nergens “allow read, write: if true”.
De regels kijken naar de ingelogde gebruiker
Een regel die altijd “ja” zegt, werkt alsof er geen regel is. De ingebouwde scan van een platform ziet dat verschil niet altijd.
Zo controleert u het: Vraag uw AI-tool per regel uit te leggen wie wat mag. Staat er “using (true)” bij een tabel met klantgegevens, dan klopt het niet.
Met twee accounts getest
Alleen zo ziet u of klant A echt niet bij de gegevens van klant B kan.
Zo controleert u het: Maak twee testaccounts. Log in als A en verander een nummer in de adresbalk naar iets van B. U hoort niets van B te zien.
Uitgelogd nagelopen
Een omgedraaide controle laat bezoekers zonder inlog juist alles zien. In een preview valt dat niet op.
Zo controleert u het: Open uw app in een privévenster, zonder in te loggen, en klik overal doorheen. Ziet u gegevens die achter de inlog horen?
Geen geheime sleutels in de browser
Alles wat naar de browser gaat, kan iedereen lezen. Een geheime sleutel daarin geeft een vreemde dezelfde macht als u.
Zo controleert u het: Open de paginabron of het tabblad Netwerk in uw browser en zoek op “service_role”, “sk_live” en “secret”. U hoort niets te vinden.
Betaalde API’s alleen via de server
Een sleutel voor bijvoorbeeld een taalmodel of betalingen in de browser kan een ander gebruiken, op uw rekening.
Zo controleert u het: Vraag uw bouwer of AI-tool waar elke sleutel staat. Het antwoord moet zijn: in een Edge Function of op de server, niet in de app.
Opslag is niet open voor iedereen
Bestanden zoals facturen of ID-bewijzen hebben eigen regels, los van de database. Een open opslag was de oorzaak van het lek bij de Tea-app.
Zo controleert u het: Kopieer de link naar een geüpload bestand en open die in een privévenster. Laadt het bestand, terwijl het privé hoort te zijn? Dan staat de opslag open.
Test- en beheerpagina’s zijn weg
AI-tools maken tijdens het bouwen handige snelkoppelingen die na de livegang blijven staan.
Zo controleert u het: Probeer in een privévenster /admin, /debug, /test en /dashboard achter uw domein. U hoort een inlog of een nette foutpagina te zien.
Elk pakket bestaat echt
In een groot onderzoek bestond 19,7% van de pakketten die taalmodellen aanraadden niet. Aanvallers registreren zulke namen met schadelijke code erin.
Zo controleert u het: Zoek elk nieuw pakket op npmjs.com of pypi.org op voordat het geïnstalleerd wordt. Is het onbekend of nauwelijks gebruikt? Installeer het dan niet.
Testversies staan niet open op internet
Op sommige platforms staat een project na één klik op “publish” openbaar, ook als het nog een test is.
Zo controleert u het: Controleer in de instellingen van uw platform of testprojecten op privé staan. Zet echte klantgegevens nooit in een testversie.
De AI-agent heeft beperkte rechten
Er zijn gevallen bekend waarin een AI-agent een productiedatabase wiste, ondanks de opdracht om niets aan te raken.
Zo controleert u het: Laat de agent alleen op een testomgeving werken en houd test en live gescheiden. Zorg voor een back-up die u kunt terugzetten.
Uw chatbot is herkenbaar en begrensd
Een chatbot is te sturen met slimme vragen (prompt injection) en kan op uw kosten onbeperkt draaien. Sinds 2 augustus 2026 moet een chatbot ook laten weten dat hij AI is.
Zo controleert u het: Zet geen geheimen of klantgegevens in de systeemprompt. Stel een limiet in bij uw AI-leverancier. Meld bij het eerste bericht dat het om AI gaat.
Tien veilige prompts voor uw AI-codetool
De prompts zijn in het Engels: AI-codetools volgen die het nauwkeurigst. Vier komen letterlijk uit de documentatie van Lovable. De andere zijn gebaseerd op de genoemde bron.
Toegangsregels nalopen
Na elke wijziging aan de database.
Review RLS policies to ensure users can only access their own data and shared data is properly protected.Toegangsregels goed opbouwen (Supabase)
Als u nieuwe tabellen laat maken.
Check whether Row Level Security is enabled on every table in the public schema before writing any policy. For each table with user data, write separate policies for SELECT, INSERT, UPDATE and DELETE (no FOR ALL). Use auth.uid() to compare with the owner column, never current_user and never using (true). Explain each policy in one sentence.Zoeken naar gelekte sleutels
Vóór elke livegang.
Review frontend code for exposed secrets, API keys, or sensitive information.Een sleutel veilig toevoegen
Als u een betaalde dienst koppelt, zoals betalingen of een taalmodel.
Add an API key for Stripe payments securely without exposing it in the frontend code.Controles naar de server
Als uw app formulieren, prijzen of rechten controleert.
Move validation logic from React components to Edge Functions for better security.Opslag dichtzetten
Als gebruikers bestanden uploaden.
Check every storage bucket. Make buckets private unless the files are meant to be public, and add storage policies so users can only read and upload their own files, based on auth.uid().Betaalberichten controleren
Als uw app berichten (webhooks) krijgt van bijvoorbeeld Stripe.
Make sure every webhook handler verifies the signature with the provider’s official library before processing the event, and rejects requests with a missing or invalid signature.Alleen bestaande pakketten
Bij elk nieuw pakket of elke nieuwe library.
Before adding any new package, confirm that it exists in the official npm or PyPI registry and name its official repository. Do not install a package you cannot verify.Opruimen vóór de livegang
Vlak voordat u live gaat.
Before we go live: list and remove all debug, test and admin routes that are not protected by login, turn off source maps in production, and show a generic error page without technical details.De agent begrenzen
Aan het begin van elke sessie met een AI-agent.
Work only on the development environment. Never run destructive database commands (DROP, DELETE, TRUNCATE) and never touch the production database. Ask me for explicit confirmation before any action that cannot be undone.
Een prompt vervangt geen test
Een goede prompt verkleint de kans op een fout, maar bewijst niets. De AI kan melden dat alles klaar is, terwijl er nog een regel staat die iedereen toelaat.
De ingebouwde beveiligingsscan van Lovable keek in 2025 of een toegangsregel bestond, niet of hij werkte. Een regel die alles toeliet, zag er voor de scan hetzelfde uit als een goede.
Of uw app echt dicht zit, ziet u pas bij een echte test. Met een tweede account en van buitenaf, zoals een aanvaller zou werken.
- Een website zonder inlog?De Scan is een scan die wij met de hand nalopen, geen pentest. Vanaf € 295 excl. btw, rapport binnen 24 uur.
- Een app met database of betalingen?Bij De Inbraaktest proberen we met de hand van buitenaf bij uw gegevens te komen. Vanaf € 2.950 excl. btw.
- Loggen klanten in, of heeft uw app een chatbot?De Inbraaktest Totaal test met twee accounts per rol, uw API’s en uw AI-functie. Vanaf € 4.950 excl. btw.
- Alles op een rijZo testen wij apps die met AI zijn gebouwd. Wij testen alleen na schriftelijke toestemming van de eigenaar van het systeem.
Bronnen: Supabase Docs: Row Level Security, Supabase Docs: AI-prompt voor RLS-policies, Supabase Docs: API-sleutels, Lovable Docs: Security best practices, Superblocks: Lovable vulnerability explained, USENIX Security 2025: package hallucinations, OWASP Top 10 for LLM Applications 2025, Cursor: Security.
Weet binnen 30 minuten wat u nodig heeft
Plan een gratis intake van 30 minuten. Vandaag nog contact bij een aanvraag op een werkdag vóór 16:00.
Geen verplichtingen, geen verkooppraatje. Alleen voor bedrijven en organisaties.