RLS désactivée, la porte ouverte sur vos données

Votre app tourne, votre base répond vite. Tant mieux. Mais répond-elle uniquement aux bonnes personnes ? Sur Supabase, cette question tient en trois lettres : RLS.

Supabase
RLS
Sécurité
Base de données

La réponse en bref

La RLS, ou sécurité au niveau des lignes, décide qui peut lire ou écrire chaque enregistrement. Désactivée, une table Supabase répond à n’importe quel visiteur, même non connecté. Le test est simple : si une requête anonyme renvoie vos données, vous êtes exposé. La correction passe par des politiques d’accès au moindre privilège.

Chez Snack Groupe, cette faille revient dans presque chaque audit d’app créée par IA. Le produit fonctionne, la base est pleine, et pourtant elle répond à qui la sollicite. Rien de dramatique à condition d’agir tôt. Pour cadrer ce travail, vous pouvez découvrir Snack Développement.

Développeur au travail sur son ordinateur portable dans un intérieur lumineux
Une base bien réglée se vérifie en quelques requêtes ciblées.

La RLS, c’est quoi au juste

La RLS est une fonction de PostgreSQL, le moteur sur lequel repose Supabase. Elle filtre l’accès à chaque ligne, selon qui pose la requête. Sans elle, une table ouverte montre tout à tout le monde.

Pour comprendre le risque, il suffit de comparer les deux situations côte à côte. Ce mécanisme, hérité de PostgreSQL, change tout au niveau de la sécurité.

Une table Supabase, avec et sans RLS
Sans RLS
La base répond à tout le monde
La clé publique suffit pour lire
Aucune règle ne filtre les lignes
Avec RLS
Chaque requête passe par une règle
Le visiteur ne voit que ses lignes
La clé publique devient inoffensive
La clé publique n’est sûre que si la RLS est active sur chaque table.
Le même outil, deux niveaux de protection très différents.

Pour aller plus loin sur le sujet, notre article sur pourquoi les sites IA tiennent rarement sous le trafic réel remet cette faille dans son contexte.

Pourquoi tant d’apps l’oublient

Quand un outil génère la base pour vous, l’activation de la RLS passe souvent à la trappe. Le code écrit des requêtes qui marchent, et personne ne pense à poser le filtre.

Plusieurs raisons se cumulent, presque toujours les mêmes.

Pourquoi la RLS passe à la trappe
Du SQL écrit à la main
Confiance aveugle dans la clé publique
Un modèle de données fait dans l’urgence
Un avertissement ignoré
Ordre de grandeur illustratif, pas une mesure.
Ordres de grandeur tirés de nos audits, pour situer les causes.

Le résultat est documenté. Une analyse de DeepStrike a recensé des milliers d’instances Supabase mal configurées, et la faille CVE-2025-48757 a visé précisément ce défaut sur des applications Lovable.

Comment savoir si vous êtes exposé

Le test ne demande pas d’outil compliqué. On se met à la place d’un visiteur non connecté, puis on frappe à la porte de la base.

Tester la RLS en cinq points

Déconnexion
On se place en visiteur non connecté.

Lecture
On tente de lire une table sensible.

Écriture
On tente d’y insérer une ligne.

Constat
Si la base répond, la table est ouverte.

Advisor
On passe le Security Advisor de Supabase.
Un test que vous pouvez lancer vous-même en quelques minutes.

Supabase propose aussi un Security Advisor, un contrôle gratuit que presque personne n’utilise. Il signale les tables sans politique. En cas de doute sérieux, notre protocole d’intervention en 72 heures permet de réagir vite.

Des politiques au moindre privilège

Activer la RLS ne suffit pas. Il faut ensuite écrire des politiques qui disent, table par table, qui voit quoi. La règle d’or reste le moindre privilège : chacun accède au strict nécessaire, rien de plus.

Le moindre privilège, une discipline

Définir les rôles

Écrire la politique

Tester en conditions réelles

Ajuster au besoin

Auditer régulièrement
On réexamine à chaque nouvelle table.
La sécurité des accès se cultive, elle ne se pose pas une fois.

Cette discipline rejoint le plan d’action pour sécuriser un site IA. Une bonne politique se teste, puis se réexamine à chaque nouvelle table.

Garder les clés du bon côté

Supabase fournit deux clés. La clé publique, dite clé anonyme, peut vivre côté navigateur. La clé de service, elle, ne quitte jamais la partie serveur.

Un point mérite d’être clair : la clé publique n’est un danger que si la RLS dort. Avec des politiques actives, elle devient inoffensive. Sans elle, elle ouvre la base en grand. C’est souvent là que naît la mauvaise surprise d’un sauvetage de MVP avant une levée.

Visuel abstrait évoquant la circulation de données
Les données circulent vite. Les règles d’accès décident de leur destination.

Avantages et limites de la RLS

Ce que la RLS apporte

  • Un filtre d’accès au plus près des données.
  • Une protection même si la clé publique circule.
  • Des règles lisibles, table par table.
  • Une base native de PostgreSQL, sans outil ajouté.

Ses limites

  • Elle se configure, elle ne s’active pas toute seule.
  • Une politique mal écrite laisse encore passer trop.
  • Elle ne protège pas les secrets laissés côté navigateur.
  • Elle demande un test après chaque évolution.

Nos services pour verrouiller Supabase

Audit des accès

Nous testons chaque table en visiteur anonyme et listons les fuites.

Écriture des politiques

Nous posons des règles au moindre privilège, table par table.

Mise en sécurité continue

Nous assurons la maintenance et le support dans la durée.

Les développeurs échangent beaucoup sur ce point précis. La communauté Supabase sur Reddit partage de nombreux récits sur ce piège précis.

Questions fréquentes

La clé publique de Supabase est-elle dangereuse ?

Elle ne l’est que si la RLS est inactive. Avec des politiques en place sur chaque table, cette clé ne donne accès à rien de sensible.

Comment vérifier rapidement si je suis exposé ?

Déconnectez-vous, puis tentez de lire une table sensible avec la clé publique. Si la base répond, la table est ouverte. Le Security Advisor de Supabase confirme le diagnostic.

Activer la RLS suffit-il ?

Non. Une table avec RLS mais sans politique bloque tout ou laisse tout passer selon la configuration. Il faut écrire des règles précises, au moindre privilège.

La RLS ralentit-elle mon application ?

L’impact reste faible quand les politiques sont bien écrites et que les colonnes filtrées sont indexées. La sécurité gagnée dépasse largement ce coût.

Snack Groupe propose-t-il un accompagnement post-projet ?

Oui. Après la mise en sécurité, nous suivons votre base, revérifions les politiques à chaque nouvelle table et ajustons au fil de vos évolutions.

Une équipe produit dans le secteur du service en ligne nous a appelés après un doute. Leur base Supabase répondait à toute requête anonyme. En posant des politiques au moindre privilège sur chaque table, l’accès s’est refermé sans gêner les utilisateurs légitimes.

Parcours-type, service en ligne