1

J'utilise Firebase depuis un certain temps, mais j'ai seulement décidé de vraiment regarder les règles de sécurité.Quelle est la sécurité d'auth! == null? Firebase

Ma question est la suivante: dans quelle mesure «auth! == null» est-il sécuritaire? Oui, je réalise que cela signifie que seul un utilisateur authentifié peut accéder aux données, mais à quel point est-il facile de s'authentifier? Quelqu'un peut-il s'inscrire à l'application, puis utiliser ces informations d'identification pour obtenir la requête directement dans ma base de données?

Comme je l'ai dit, je suis nouveau pour les règles de sécurité, donc je suis désolé si c'est une question évidente.

Voilà mes règles de sécurité:

{ 
    "rules": { 
    "Users": { 
     "$user_id": { 
     ".write": "$user_id === auth.uid", 
     ".read" : "auth !== null", 
     "shoofers" : { 
      ".write" : "auth != null" 
     } 
     } 
    } 
    } 
} 

Merci!

Neil

Répondre

3

Un utilisateur peut authentifier via anonyme, email/mot de passe, divers fournisseurs OAuth et numéro de téléphone se connectent. Vous pouvez activer/désactiver l'un d'entre eux. Votre règle racine ci-dessus permet un accès en lecture seule à tout utilisateur authentifié via l'un des mécanismes indiqués et un accès en écriture pour un utilisateur spécifique à ses propres données. Il est très difficile de faire une fausse connexion. La base de données vérifiera toujours que la requête a un jeton d'identification (quand auth n'est pas nul). Les jetons d'identité utilisent la cryptographie à clé publique et sont difficiles à truquer sans la possession de la clé privée.

1

Vous pouvez donner aux utilisateurs l'accès à la base de données soit après la connexion dans l'authentification ou l'authentification sur. Mais il est bon et sûr pour permettre aux utilisateurs d'accéder à votre base de données avec l'authentification

avec les règles de sécurité d'authentification sont

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

et sans authentification

 { 
    "rules": { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
}