Tous les articles
Ingénierie14 septembre 20232 min de lecture

Comment on garantit qu'une entreprise ne voit jamais les données d'une autre

Dans un SaaS multi-entreprises, l'isolation des données n'est pas une option de configuration. C'est une règle imposée par la base de données elle-même.

Spotrak

Spotrak

Équipe produit

Partager

Un SaaS multi-entreprises, c'est une seule base de données qui contient les clients de tout le monde. La question qui devrait empêcher de dormir n'importe quel éditeur : qu'est-ce qui garantit qu'une requête d'une entreprise ne ramènera jamais, par bug ou par malveillance, la donnée d'un client d'une autre entreprise ?

La mauvaise réponse, la plus répandue, c'est « notre code filtre par compte ». Le code, ça s'oublie. Un développeur écrit une requête, oublie son filtre, et la fuite est là. Faire reposer l'isolation sur la discipline des développeurs, c'est une fuite qui attend son jour.

L'isolation vit dans la base, pas dans le code

Chez Spotrak, la séparation est imposée par Postgres lui-même, via le Row Level Security. Chaque table porte une règle : une session ne peut lire que les lignes de son compte, point. Même si une requête oublie son filtre, la base ne renvoie rien d'autre. L'isolation ne dépend plus de la mémoire du développeur, elle est structurelle.

Fermé par défaut, ouvert par exception

Le réflexe habituel est d'ouvrir les accès puis de restreindre. On fait l'inverse : tout est interdit par défaut, et on ouvre explicitement, table par table, le strict nécessaire. Une table qu'on oublie de configurer n'est pas une table grande ouverte. C'est une table à laquelle personne n'accède. L'erreur penche du côté sûr.

Les données sensibles ne sont pas exposées en direct

Les jetons de session, les codes à usage unique, les événements internes ne vivent pas dans des tables que le client interroge. Ils sont dans un schéma séparé, accessible uniquement par des fonctions au privilège contrôlé, qui valident avant de répondre. Le navigateur de l'utilisateur ne parle jamais directement à ces tables.

Rien de tout ça ne se voit dans l'interface, et c'est précisément le but. La sécurité qui se voit est une contrainte ; la sécurité bien faite est une absence de bruit. Quand on confie les données de ses clients à un logiciel, c'est cette couche invisible qu'on achète vraiment.

Spotrak

Spotrak

Équipe produit

L'équipe Spotrak construit les plateformes métier qu'on déploie chez nos clients et écrit sur ce qu'on apprend en les exploitant.

Rejoignez la newsletter Spotrak.

Deux fois par mois.