0

Je me sers Firebase comme un moyen de synchroniser les données entre une application Rails et une application mobile kit web. J'ai récemment essayé d'utiliser la méthode d'authentification par e-mail/mot de passe au lieu de jetons d'authentification personnalisés.Problèmes de sécurité avec Firebase Simple Connexion

Tout fonctionne comme prévu, mais ma préoccupation est la création et authentification des utilisateurs.

Actuellement, je suis capable de créer un utilisateur, à la fois sur Rails (en utilisant une version auto-modifiée de la gemme firebase-ruby) et via l'application mobile, en utilisant le module nœud Firebase. Donc, du point de vue d'un utilisateur malveillant, est-il correct de supposer que je peux créer un utilisateur Simple Login avec la bibliothèque JS (pour l'instance firebase de quelqu'un), puis m'authentifier avec cet utilisateur, et essayer de lire les données qu'ils ont stocké?

Bien sûr, on ne devrait pas laisser toute leur structure de données Firebase non protégées. Cela ne fonctionne donc que dans une situation où l'on n'a défini que les règles de sécurité par défaut.

De toute façon, est-il un moyen d'empêcher quiconque de créer des utilisateurs, sauf pour moi-même (ou toute autre personne autorisée) sans avoir recours à l'authentification retour personnalisée? Je comprends la différence entre l'authentification (le serveur sait qui vous êtes) et l'autorisation (le serveur vous laisse entrer).

Tout commentaire est apprécié.

+0

un utilisateur est Authentifier en aucun cas un risque de sécurité. En effet: authentifier les utilisateurs contre un service d'identité * bien connu * est souvent une première étape simple pour décourager (mais en aucun cas empêcher) l'abus. Puisque Firebase gère l'authentification contre le service tiers, quel dommage craignez-vous que Joe Random soit authentifié? –

+0

Je suppose que mon seul souci était de créer des comptes. Je pense que si quelqu'un décidait de créer des milliers de comptes sur mon instance Firebase, cela me causerait plus de maux de tête que d'autres. (c'est-à-dire devoir supprimer tous les utilisateurs de spams.) Pour autant que je sache, c'est ce sur quoi je n'ai aucun contrôle. –

+0

[* Disclaimer: Je travaille pour Firebase *] Pourquoi auriez-vous besoin de supprimer des comptes? Si vous utilisez des comptes Facebook/Github/Google avec Firebase, rien n'est * créé * lorsqu'un utilisateur s'authentifie. Votre application vient d'obtenir un authData "magique" pour l'utilisateur authentifié. Donc, à moins d'avoir du code qui stocke ces utilisateurs quelque part (par exemple dans votre Firebase), Firebase gère tout ce qui se passe dans les coulisses pour vous. –

Répondre

1

Dans ma conversation avec Frank, il semble qu'il n'y a aucun moyen d'empêcher les utilisateurs malveillants de créer un certain nombre de comptes sur une instance Firebase par e-mail/mot de passe simple Login. Cela ne leur permet pas d'autoriser des données en tant que telles, mais cela peut être gênant pour SysAdmin/DevOp qui maintenait l'instance Firebase.