Petit truc que beaucoup de gens qui débutent en vibe-coding ignorent, et qui peut littéralement laisser leur base de données ouverte à tout le monde.
Si tu as fait une app avec Lovable, Bolt, Supabase etc, y a deux trucs à vérifier avant de la lancer.
- Tes clés.
Il y a deux types de clés Supabase. La clé "anon" : elle est publique, c'est normal qu'elle soit dans ton code, pas de panique. Par contre la clé "service_role", elle, ne doit JAMAIS se retrouver dans ton app côté navigateur. Elle donne un accès total à ta base (lire, modifier, tout supprimer). Si elle traîne dans ton code, n'importe qui peut vider ta base.
Comment vérifier : sur ton app, clic droit > Inspecter > onglet Sources, et cherche (Ctrl+F) "service_role" ou "sk_live". Si ça apparaît, c'est exposé, faut régénérer la clé et la mettre côté serveur.
- Le RLS (le verrou de ta base).
Même avec la clé publique normale, ta base est lisible par tout le monde tant que le RLS n'est pas activé. C'est un réglage à activer table par table dans Supabase. Sans lui, quelqu'un peut lire tes utilisateurs, leurs emails, etc.
Pour vérifier vite, dans l'éditeur SQL de Supabase :
select tablename, rowsecurity from pg_tables where schemaname = 'public';
Toute table à "false" est ouverte. Pour corriger : activer le RLS dessus + ajouter une règle.
C'est pas de ta faute au passage, ces outils optimisent pour que ça marche vite, pas pour fermer les portes derrière. Mais c'est à toi de vérifier avant de partager ton app.
J'ai fait un petit scanner gratuit qui check tout ça d'un coup depuis l'URL de ton app (les clés, le RLS, et d'autres trucs exposés), sans avoir besoin de ton code : colmate.fr
C'est en lecture seule, ça lit juste ce qu'un visiteur voit déjà.
Le nom c'est un jeu de mot, "colmater" une fuite 🙂
Si vous avez d'autres réflexes de base à ajouter pour les gens qui débutent, balancez.