Een sleutel in je code of git-historie is een van de meest voorkomende lekken. Dit is het stappenplan, in de juiste volgorde.
Eerst roteren, dan opruimen
De eerste stap is altijd de sleutel ongeldig maken bij de leverancier en een nieuwe aanmaken. Zolang de oude sleutel geldig is, maakt het niet uit hoe grondig je je code opschoont.
Verwijderen uit het huidige bestand is niet genoeg: de oude waarde staat nog in de git-historie en in elke kopie van de repository die iemand ooit heeft gemaakt.
Controleer vooral de service role key in Supabase, want die omzeilt alle policies.
Kijk wat er met de sleutel is gebeurd
Veel diensten laten zien wanneer en vanaf waar een sleutel is gebruikt. Controleer die logboeken op verkeer dat je niet herkent, en kijk of er gegevens zijn opgevraagd of gewijzigd.
Voorkom de volgende keer
- Zet geheimen nooit in code die naar de browser gaat; alleen in server-side omgevingsvariabelen.
- Gebruik een secrets-opslag in plaats van .env-bestanden die meegecommit kunnen worden.
- Laat bij elke wijziging automatisch scannen op sleutels voordat er iets naar de hoofdtak gaat.
- Geef sleutels de kleinst mogelijke rechten en een vervaldatum als dat kan.
Gebruik de Supabase security checklist om ook de databaserechten te controleren.
Waarom AI-gebouwde projecten dit vaker hebben
Een assistent die snel iets werkend maakt, zet een sleutel liever direct in de code dan dat hij een omgeving inricht. Dat werkt meteen, en het valt in de preview niet op. Pas bij een controle van de repository komt het boven water.
Loop vóór je eerste gebruikers de checklist voor livegang na.
Veelgestelde vragen
Is een gelekte anon key van Supabase een probleem?
Op zichzelf niet — die hoort publiek te zijn. Wel als je row level security niet op orde is, want dan geeft hij toegang tot alles.
Kan ik de git-historie herschrijven?
Dat kan, maar het is bewerkelijk en anderen hebben de oude historie mogelijk al. Roteren blijft de enige zekere oplossing.
Hoe vind ik sleutels in mijn project?
Zoek op bekende patronen zoals 'service_role', 'sk_' en 'Bearer', en laat daarnaast automatisch scannen — handmatig zoeken mist bijna altijd iets.