La sécurité des données constitue un pilier fondamental pour toute application, qu'elle soit codée de manière classique, ou en No code .
Dans l'écosystème Bubble.io, les Privacy Rules (ou règles de confidentialité) constituent le mécanisme principal pour protéger vos données et garantir que seuls les utilisateurs autorisés aient accès aux données en question.
Ces Privacy Rules définissent qui peut créer, lire, modifier ou supprimer des données dans votre application. Sans ces règles, votre application serait vulnérable à des accès non autorisés, pouvant conduire à des fuites de données sensibles ou des manipulations malveillantes.
A ce sujet, nous vous conseillons de suivre notre Tips & Tuto sur la sécurité :
→ Sécuriser une application Bubble en 5 minutes
💡 Concept clé : Les Privacy Rules fonctionnent comme une couche de protection supplémentaire entre vos données et vos utilisateurs, permettant un contrôle précis des permissions.
Dans l'univers du no-code, la facilité de développement peut parfois faire oublier les fondamentaux de la sécurité informatique. Or, à l'instar d'une application classique les applications réalisées avec Bubble manipulent aussi des données sensibles :
Les conséquences d'une mauvaise implémentation des Privacy Rules peuvent être désastreuses :
🔥 Le mot de l'expert : "Développez toujours en gardant à l'esprit la sécurité de vos Apps. Si vous ne protégez pas vos données avec des Privacy Rules, vous ne les protégez pas du tout. Chaque enregistrement dans la base de données de votre application qui n'est pas public doit être conçu en adéquation." par Peter Amlie, dans son guide sur les performances.
Bubble utilise un système de règles en quatre axes pour contrôler l'accès aux données. Chaque type de données dans votre application peut avoir ses propres règles qui déterminent :
1. Create - Qui peut créer de nouvelles entrées
→ Exemple : Seuls les utilisateurs connectés peuvent créer des publications
2. Read - Qui peut lire ou visualiser les données existantes
→ Exemple : Un message privé ne peut être vu que par l'expéditeur et le destinataire
3. Update - Qui peut modifier les entrées existantes
→ Exemple : Un utilisateur ne peut modifier que ses propres informations de profil
4. Delete - Qui peut supprimer des entrées
→ Exemple : Seuls les administrateurs peuvent supprimer des commentaires
💡 Note : Les Privacy Rules ne sont pas simplement une restriction de l'interface utilisateur - elles sont appliquées au niveau de la base de données et constituent votre principal mécanisme de sécurité.
Bubble permet d'appliquer la sécurité à deux niveaux distincts :
1. Sécurité au niveau du type de données : Contrôle l'accès à l'ensemble d'un enregistrement.
2. Sécurité au niveau des champs : Permet un contrôle plus fin en définissant qui peut voir ou modifier des champs spécifiques au sein d'un enregistrement.
✅ Pratique recommandée : Utilisez la sécurité au niveau des champs pour les informations sensibles comme les mots de passe ou les données de paiement, même si l'enregistrement lui-même est accessible.
Lorsque vous créez un nouveau type de données dans Bubble, il n'est protégé par aucune règle (visible publiquement). Le seul type de données qui comporte des Privacy Rules est le type "User", présent de base dans toutes les applications.
⚠️ Attention : Il est de votre devoir en tant que développeur d'examiner chaque data type et d'appliquer des sécurités là ou elles sont nécessaires.
La règle "This user" est l'une des plus couramment utilisées dans Bubble. Elle fait référence à l'utilisateur propriétaire de l'enregistrement.
Prenons par exemple une configuration pour un type "Commentaire" sous un article de blog :
💡 Astuce pratique : Pour que "This user" fonctionne correctement, vous devez avoir un champ dans votre type de données qui établit la relation avec l'utilisateur. Par exemple, dans votre Type "Commentaire" vous devez créer un champ satellite "Auteur" de type User.
Pour les applications plus complexes, vous aurez souvent besoin de définir des permissions basées sur différents rôles.
Exemple pour une application de gestion de projet :
Pour implémenter ces rôles, vous pouvez :
Contrairement à certaines idées reçues, les Privacy Rules n'ont pas d'impact significatif sur les performances de votre application Bubble. En réalité, elles fonctionnent comme un filtre supplémentaire appliqué au niveau du serveur avant que les données ne soient transmises au navigateur.
Les Privacy Rules sont intégrées de façon optimisée par Bubble dans les requêtes de base de données. Elles peuvent donc théoriquement améliorer les performances de vos applications car elle limitent le nombre de données renvoyées sur la page par le serveur ce qui peut améliorer les temps de chargement.
Vous pouvez mesurer les données renvoyées sur la page et les temps de chargement dans l'onglet "Console" de votre navigateur (Ctrl + Maj + J).
💡 Concept clé : Les Privacy Rules ne sont pas un mécanisme de filtrage client-side qui s'exécuterait après le chargement des données - elles sont appliquées côté serveur avant même que les données ne quittent la base de données.
Puisque les Privacy Rules n'impactent pas négativement les performances, la priorité doit être mise sur la conception d'une architecture de données qui facilite une sécurité robuste de vos applications.
Hiérarchie des priorités :
Si vous ne protégez pas vos données avec les Privacy Rules dès le début, vous ferez des choix incohérents dans la conception de la base de données plus tard. La sécurité prime sur la performance dans ce cas.
Considérations clés lors de la conception de votre base de données avec la sécurité en tête :
Différents cas d'usage nécessitent différentes approches en termes de sécurité :
Application mono-utilisateur (ex: CRM personnel)
Plateformes multi-utilisateurs (ex: réseaux sociaux)
Applications d'entreprise (ex: gestion de projet)
Pour garantir que vos règles de sécurité fonctionnent comme prévu, adoptez une approche méthodique :
Si votre App est complexe, voici ce que vous pouvez mettre en place :
Pour tester efficacement vos règles, créez des comptes de test représentant différents types d'utilisateurs :
💡 Astuce : Créez une matrice de test où chaque ligne représente un type d'utilisateur et chaque colonne une action (créer/lire/modifier/supprimer) sur un type de données spécifique. Exécutez systématiquement tous les scénarios.
Fin 2024, Bubble a eu l'idée géniale de faire l'acquisition de Flusk. Une startup Française spécialisée dans... la sécurité des applications Bubble !
Le check sécurité complet via la plateforme de Flusk est désormais directement intégré à Bubble dans l'onglet "Privacy".
Sans rentrer dans plus de détails, nous ferons un article dédié sur le sujet dans les prochaines semaines.
Voici les erreurs les plus fréquentes :
Des Privacy Rules mal configurées peuvent avoir des conséquences graves :
Un point crucial à comprendre concernant les Privacy Rules est qu'elles ne cachent pas réellement les enregistrements en eux-mêmes, mais appliquent un filtre supplémentaire à une recherche... Si vous protégez un enregistrement d'être trouvé dans une recherche, cet enregistrement sera toujours visible s'il fait partie d'une liste enregistrée sur un autre enregistrement.
💡 Astuce pratique : Créez un tableau récapitulatif de toutes vos Privacy Rules pour avoir une vue d'ensemble de votre système de sécurité. Cela vous aidera à identifier les incohérences potentielles et facilitera l'onboarding de nouveaux développeurs.
Ce cas précis est un cas d'usage réel d'une application (TransApp) que nous avons développé pour un client dans le secteur du transport routier.
Le contexte :
Les conducteurs doivent envoyer des rapports quotidiens sur l'utilisation qu'ils font des véhicules. L'entreprise compte 3 types d'utilisateurs. L'Administrateur, l'équipe exploitation et les conducteurs. Chacun de ces types possède un accès spécifique, mais il y a des subtilités.
→ Dans le cas ou un sinistre est signalé dans un rapport par exemple, le conducteur qui consulte doit pouvoir voir l'état du véhicule et les photos du sinistre, mais il n'a pas à connaitre l'identité du conducteur qui a causé le sinistre.
Structure Base de données & Privacy rules :
Les Privacy Rules dans Bubble.io constituent la pierre angulaire de la sécurité de votre application. Bien implémentées, elles offrent une protection robuste de vos données sans compromettre l'expérience utilisateur ni les performances.
Points clés à retenir :
La sécurité n'est jamais "terminée". À mesure que votre application évolue, vos Privacy Rules doivent également s'adapter.
Planifiez des audits réguliers de votre système de sécurité pour identifier et corriger les vulnérabilités potentielles.
💙 Le mot de la fin : Lorsque vous maîtrisez les Privacy Rules, vous ne protégez pas seulement vos données - vous construisez également la confiance de vos utilisateurs, élément essentiel pour le succès de toute application.