Comment restreindre la modification des données Firebase?

Firebase fournit la base de données arrière-extrémité de sorte que les développeurs peuvent se concentrer sur le code côté client.

donc si quelqu'un prend mon uri de base de feu (par exemple, https://firebaseinstance.firebaseio.com ) alors développer sur elle localement .

alors, seraient-ils capables de créer une autre application à partir de mon instance Firebase, de s'inscrire et de s'authentifier pour lire toutes les données de mon application Firebase?

56
demandé sur rattanak 2016-02-15 23:09:19

3 réponses

merci à tous les deux pour cette discussion. Cependant, je voulais ajouter un détail.

@Frank van Puffelen,

vous avez mentionné l'attaque de phishing. Il ya effectivement un moyen de sécuriser pour que.

si vous vous connectez à votre console googleAPIs API Manager, vous avez l'option de verrouiller la référence HTTP à partir de laquelle votre application acceptera la demande.

  1. visite https://console.developers.google.com/apis
  2. Allez à votre firebase projet
  3. Accédez à des informations d'identification
  4. sous les clés API, sélectionnez la clé de navigateur associée à votre projet firebase (doit avoir la même clé que la clé API que vous utilisez pour initialiser votre application firebase.)
  5. sous" accepter les requêtes de ces référents HTTP (sites web), il suffit d'ajouter l'URL de votre application.

cela ne devrait permettre au domaine sur la liste blanche d'utiliser que votre application.

ceci est également décrit ici dans la liste de contrôle du lancement de firebase ici: https://firebase.google.com/support/guides/launch-checklist

peut-être la documentation firebase pourrait-elle rendre cela plus visible ou verrouiller automatiquement le domaine par défaut et exiger des utilisateurs qu'ils permettent l'accès?

Encore une fois, merci beaucoup!

57
répondu prufrofro 2016-08-09 21:27:49

le fait que quelqu'un connaisse votre URL n'est pas un risque de sécurité.

par exemple: je n'ai aucun problème à vous dire que ma banque héberge son site web à bankofamerica.com et il parle du protocole HTTP là-bas. A moins que vous ne connaissiez aussi les informations d'identification que j'utilise pour accéder à ce site, connaître L'URL ne vous fait aucun bien.

pour sécuriser vos données, votre base de données doit être protégée par:

  • règles de validation qui s'assurer que toutes les données adhèrent à une structure que vous voulez
  • règles d'autorisation pour s'assurer que chaque bit de données ne peuvent être lus et modifiés par les utilisateurs autorisés

tout cela est couvert dans la Firebase documentation on Security & Rules , que je recommande fortement.

avec ces règles de sécurité en place, la seule façon dont l'application de quelqu'un d'autre peut accéder aux données dans votre base de données est s'ils copient la fonctionnalité de votre application, demandez aux utilisateurs de se connecter à leur application au lieu de la vôtre et de se connecter/lire/écrire dans votre base de données; essentiellement une attaque de phishing. Dans ce cas, il n'y a pas de problème de sécurité dans la base de données, bien qu'il soit probablement temps de faire intervenir certaines autorités.

29
répondu Frank van Puffelen 2018-06-05 14:52:14

concernant la liste blanche Auth pour les applications mobiles, où le nom de domaine n'est pas applicable ,Firebase ont

1) SHA1 fingerprint pour Android apps et

2) App Store ID and Bundle ID and Team ID (if necessary) pour votre iOS apps

que vous devrez configurer dans la console Firebase.

avec cette protection, puisque la validation n'est pas seulement si quelqu'un a une clé API valide, Auth domaine, etc, mais aussi, est-ce que cela vient de nos applications autorisées et domain name/HTTP referrer in case de Web .

a dit que, nous n'avons pas à nous inquiéter si ces clés API et autres paramètres de connexion sont exposés à d'autres.

pour en savoir plus, https://firebase.google.com/support/guides/launch-checklist

2
répondu Anand 2017-12-09 19:22:15