arcalis
Alle posts

De checklist die ik over iiCaptain haalde

Een checklist van 21 punten voor apps die je met AI bouwt, samengesteld uit posts op social media. Ik haalde iiCaptain erlangs, en je AI kan dat ook bij jouw app doen.

Op social media kom je ze steeds tegen: lijstjes met wat er mis kan gaan in apps die je met AI bouwt. Sleutels die openbaar staan, of een database die voor iedereen openstaat. Ik verzamelde de punten uit die posts en zette ze in één lijst van 21.

Daarna haalde ik iiCaptain erlangs. Ik gaf de lijst aan Claude met deze vraag:

Can you check my app on all these points and create a markdown file to plan out how to address these points. No changes to the code yet pls

Eerst een plan

Dat laatste zinnetje doet ertoe. Je krijgt eerst een overzicht en beslist daarna zelf wat er wanneer gebeurt. De AI leest je code en schrijft per punt op of het in orde is, half of nog ontbreekt, met bestandsnaam en regelnummer erbij. Daarna zet hij het werk in een volgorde: wat deze week moet, wat binnen een maand en wat later kan.

Pas als dat plan klopt, laat je hem aanpassen. Punt voor punt, met een test bij elke wijziging.

De 21 punten

Dit is de lijst, in gewone woorden. Je mag hem overnemen.

  1. Bescherm je API-sleutels. Een sleutel die in de browser te zien is, beperk je tot jouw domein en tot de diensten die je echt gebruikt.
  2. Houd .env-bestanden uit git, ook in submappen, zoals die van je mobiele app.
  3. Zet geen enkel geheim in de code zelf.
  4. Bouw echte authenticatie, en kijk op de server wie er ingelogd is.
  5. Controleer rechten op de server, nooit alleen in de app.
  6. Vertrouw geen gebruikers-ID die uit de browser komt. Haal hem uit het gecontroleerde token.
  7. Houd de gegevens van gebruikers en teams gescheiden, en test dat een lid van team A niet bij team B kan.
  8. Zet je database dicht: wat niet uitdrukkelijk mag, is verboden.
  9. Kijk ook naar de opslag van je backend, zoals Firebase of Supabase, en niet alleen naar de database.
  10. Bescherm beheerpagina’s op de server.
  11. Zet de debugmodus uit in productie.
  12. Laat gebruikers geen technische foutmeldingen zien.
  13. Controleer alle invoer op de server.
  14. Maak wat gebruikers invoeren onschadelijk voordat je het toont of verstuurt. Ook in e-mails.
  15. Beveilig uploads: type, grootte en aantal, gecontroleerd op de server.
  16. Voorkom SQL- en NoSQL-injectie.
  17. Beperk het aantal pogingen bij inloggen en aanmelden.
  18. Doorzoek je git-geschiedenis op geheimen die er ooit in hebben gestaan.
  19. Stel security headers in.
  20. Sta CORS alleen toe waar het nodig is.
  21. Vraag je AI om een security review, en herhaal die.

Laat je AI controleren en aanpassen

Je kunt deze lijst zo aan Claude of ChatGPT geven. Laat hem je code punt voor punt nalopen, en wat ontbreekt daarna aanpassen. Bijvoorbeeld zo:

Loop deze app na op de 21 punten hieronder. Schrijf per punt
in een markdown-bestand: in orde, deels of ontbreekt, met
bestand en regel, en wat er moet gebeuren. Markeer apart wat
je alleen in een console kunt controleren. Pas nog niets aan.

[plak hier de lijst]

Klopt het plan, dan vraag je hem het per fase uit te voeren.

Ook buiten je code

Een deel van de lijst staat niet in je code. Het gaat over instellingen in de diensten waar je app aan hangt: de sleutels in Google Cloud, de regels in Firebase of Supabase, de previews in Vercel, branch protection in GitHub. Die kan een AI die alleen je code leest niet zien.

Daar helpt een browserextensie. Met de Chrome-extensie van Claude of ChatGPT kijkt de AI via computer use mee in je browser, waar je al bent ingelogd bij die diensten. Zo kan hij ook die instellingen nalopen en waar nodig aanpassen. Het gaat wel om productie. Laat hem eerst kijken en rapporteren, en keur elke wijziging zelf goed.

Twee punten die ik eraan toevoeg

  1. Laat je AI zoeken naar code die je app niet nodig heeft: bestanden die niemand gebruikt, pakketten die nergens worden geïmporteerd, code die vier keer bijna hetzelfde is. Laat hem elke bevinding dubbel controleren voordat hij iets weghaalt. Ik deed dat bij iiCaptain met een skill die ‘ponytail’ heet.
  2. Kijk of je tests en checks echt draaien. Een groen vinkje zegt niet altijd dat er iets is getest.

Herhaal de check elk kwartaal en voor elke grote release.