1

J'ai lu les guides des règles de sécurité de la base de données Firebase Realtime (https://firebase.google.com/docs/database/security), et je suis un peu confus en ce qui concerne l'UID générée par Firebase Auth (disons si les utilisateurs de mes applications utilisent Facebook pour s'authentifier) secret? J'ai ce genre de structure de données:Règles de sécurité Firebase - Auth UID généré doit-il être gardé secret?

  • utilisateurs
    • UID
      • Beaucoup de nœuds de données personnelles à lire/écrit par l'utilisateur donné seulement.

Donc, si un pirate malveillant s'empare de certains UIDs, sera-t-il capable de lire/écrire les données des utilisateurs personnels? Pour autant que je puisse voir, si quelqu'un connaît l'UID, il peut configurer une demande et prétendre être authentifié en tant qu'utilisateur? Ou est-ce que je manque quelque chose ici?

Merci beaucoup!

+1

L'UID d'un utilisateur n'est pas un secret. C'est juste un identifiant, similaire à votre ID 7276386 sur Stack Overflow. Connaître votre identifiant ne permet pas à un utilisateur de vous usurper. Voir ma plus longue explication ici: https://stackoverflow.com/questions/37221760/firebase-is-auth-uid-a-shared-secret/37222341#37222341 –

Répondre

1

Non, l'UID peut être récupéré sous auth.uid dans les règles. C'est côté serveur. Prenez ces règles par exemple:

"users": { 
     "$uid": { 
     ".read": "$uid === auth.uid", <-------------------------------- 
      "online": { 
      ".read": "auth != null", 
      ".write": "$uid === auth.uid" 
      }, 

La flèche indique la ligne que je veux dire. Ce n'est pas grave si vous avez quelqu'un d'autre son UID, parce que lorsque vous essayez de récupérer des données avec cette règle, il échouera parce qu'il y a une discordance. Le auth.uid est côté serveur et pour autant que je sache, est assez bien protégé. Il peut changer son propre client UID et essayer de récupérer des données, mais avec des règles de sécurité, vous pouvez empêcher l'échange de données.

Tout dépend des règles que vous définissez. Lorsque vous définissez la règle à la flèche, vous n'avez pas à vous inquiéter.