コンテンツにスキップ

Secure Firebase Database Permissions

セキュアなFirebaseデータベース権限

説明

Firebase Realtime Databaseルールは、データベースに対する読み取りおよび書き込みアクセス権を持つユーザー、データの構造化方法、および存在するインデックスを決定します。

安全でないデータベース権限は一般的な問題であり、データベースへの不正アクセスにつながります。Firebaseは、認証、認可、さらにはデータ検証を実施するためのツールを提供しています。

避けるべき一般的な設定ミスの問題は次のとおりです。

すべてのユーザーへの読み取りおよび書き込みアクセス:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

ログインしているユーザーは誰でも、データベース全体に対する読み取りおよび書き込みアクセス権を持ちます:

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

Realtime Databaseルールはカスケードされ、より浅い親パスのルールが、より深い子ノードのルールをオーバーライドします。子ノードにルールを記述する場合は、追加の権限のみを付与できることに留意してください。データベース内のより深いパスにあるデータへのアクセス権を絞り込んだり、取り消したりすることはできません。

{
  "rules": {
     "foo": {
        // allows read to /foo/*
        ".read": "data.child('baz').val() === true",
        "bar": {
          /* ignored, since read was allowed already */
          ".read": false
        }
     }
  }
}

推奨事項

このエントリは安全であり、適用される推奨事項はありません。

リンク