3 votes

Sécurité dans la base de feu/firestore

Dans un projet sur lequel je travaille actuellement, j'utilise le cloud FireStore et la base de données sous-jacente.

J'ai besoin de mon client (iOS et Android) pour être en mesure de lire (pas d'accès wrtie à tous) des documents à partir de cloud FireStore indépendamment de l'utilisateur est connecté ou non (en fait, ne va pas utiliser firebase auth à tous).

Je ne veux pas que quiconque puisse accéder aux données depuis l'extérieur des applications (via les points d'accès REST, par exemple). Je suppose que ce dont j'ai besoin, c'est d'intégrer une sorte de clé API dans l'application qui accorde l'accès, mais je ne vois pas comment je peux le faire. Quelqu'un peut-il me guider dans la bonne direction ?

0 votes

Hmm, c'est juste une question. S'il s'agit d'une application, pourquoi ne pas les connecter ?

0 votes

Le contenu ne devrait tout simplement pas exiger que l'utilisateur se connecte. Tous les utilisateurs ne souhaitent pas se connecter. Cependant, lorsque l'utilisateur se connecte, il le fait via notre propre solution OAuth, qui pourrait bien sûr être connectée à firebase auth si nous le souhaitions, mais j'essaie d'éviter cela

0 votes

Hmm ok. Cela me semble étrange que les utilisateurs ne puissent pas se connecter, mais que les données ne soient pas accessibles au public ?

1voto

Vincent Points 873

Je sais que vous dites que vous ne voulez pas utiliser Firebase Auth, mais je pense que la signature anonyme est la meilleure solution. Cela leur permettra de recevoir un uid sans s'inscrire / se connecter afin que vous puissiez les valider dans vos règles de sécurité Firebase / Firestore. La version web ressemble à ceci, mais elle est également implémentée pour Android/IOS. Ce code est tiré directement de aquí .

firebase.auth().signInAnonymously().catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
    var isAnonymous = user.isAnonymous;
    var uid = user.uid;
    // ...
  } else {
    // User is signed out.
    // ...
  }
  // ...
});

Version IOS
Version Android

0 votes

Vous avez peut-être raison. Cela semble être la solution... mais cela empêchera-t-il les utilisateurs de générer un identifiant anonyme via l'API REST et d'accéder aux données de cette manière ? J'ai besoin d'empêcher la fuite de nos données via l'API REST...

1 votes

En fin de compte, ces données sont publiques, puisque n'importe qui peut les obtenir simplement en étant dans votre application. Il est possible qu'une personne extérieure à l'application s'empare de vos données, mais la probabilité est faible. Si vous avez vraiment besoin d'une sécurité digne d'une banque, vous devriez envisager de demander à vos clients de s'inscrire sur un vrai compte. Mais combien d'applications ont besoin d'une sécurité de niveau bancaire ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X