2017-07-17 15 views
0

私はFirebaseの初心者です。理論的な質問があります。 Firebaseにデータベースがあり、私はReactJSによって構築されたWebアプリケーションを持っています。データベースには、たとえば電子メールとパスワード、およびisAdminプロパティを持つユーザーコレクションがあります。したがって、isAdminが1の場合、これらのユーザーは管理者になります。ログイン後、ユーザーのisAdmin値を確認​​できますが、誰かがJS条件をクライアント側で変更するとどうなりますか?クライアント側のisAdminパラメータを変更した場合、彼はサイトの管理者部分にアクセスできますか?私はこの話題についての記事を読んだことがありますが、私はこのセキュリティメカニズムの仕組みを理解していません。これは既存の脅威ですか、何か逃しましたか? 説明と回答ありがとう!Firebaseログイン - 管理者のルール

答えて

0

通常、isAdminプロパティは、許可されたユーザーのみが設定できるようにします。

私は whitelistと呼ばれるノードの下にフルアクセス権を持つユーザーのUIDをのリストを入れて、私のデモプロジェクトの多くで

whitelist 
    UID1: true 
    UID2: true 

そして、私のデータベースのための私のセキュリティルールで、私は、ユーザーが指定しましたホワイトリストには完全な書き込みアクセス権があります。

{ 
    "rules": { 
    ".read": true, 
    ".write": "root.child('whitelist').child(auth.uid).exists()" 
    } 
} 

この単純な設定では、すべてのユーザーがデータベース全体を読み取ることができます。ただし、管理者だけがデータベースのどこにでも書き込むことができます。通常のユーザーは管理者ではないため、自分のUIDをホワイトリストに追加することはできません。

役に立つかもしれないいくつかの関連質問:

関連する問題