4

私はAngularでゲームを構築しています(初めて初めて)私はハイスコアテーブルを追加しようとしています。私はFirebaseアカウントを設定し、Firestore (Beta)データベースを稼働させて接続しました。サイトのログインが不要な場合、データベース(Cloud Firestore)のセキュリティを保護されないままにすることはできますか?

私は非常に単純なハイスコアシステムが欲しいです。ユーザーはログインしたり、アカウントを作成したりする必要はなく、単に上がって遊んだり、高いスコアを達成したら名前を入力して、テーブルに記録して表示します。

ログインが不要で基本的なの名前/スコア/タイムスタンプのデータのみが保存される状況では、以下のように自分のセキュリティルールをそのまま残すか、より良い方法で構造化することができますかそれら?

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /{document=**} { 
     allow read, write; 
    } 
    } 
} 

彼らは、私は私のデータベースが参照して誰にでも開かれているが、これは私の特定の状況で本当に悪いです警告が表示されますか?私はデータベースnewbとして見ていないこの問題はありますか?

これは私にとって新しい(複雑な)領域なので、アドバイスは素晴らしいものです。

乾杯

答えて

7

ここでは、赤い点滅の下線付きテキストを使用したいと考えていますが、は、このルールセットを使用してデータベースを残すことは間違いありません。

あなたのゲームをプレイする人はあなたのデータベースを見るでしょう。あなたが持っているルールセットを使えば誰でもデータベースに何かを読み書きすることができます(スコアボードだけでなく)。誰でもあなたのデータベースを使って自分のシステムを稼働させることができます。費用はアカウントに請求されます。最低で

、あなたが提供してきた説明を、あなたがすべき与えられた:

  • スコアが有効な値(例えば整数である&が
  • あなたのスコアボードコレクションへの書き込み検証を読んのみを許可し、一定の範囲内で
  • 検証名前が有効な値である(可能なXSS攻撃から保護するのに役立つ)scorename以外
  • 検証余分なフィールドがdocumに書き込まれていることent(他のペイロードを隠すことはできません)。
+0

これは私が考えていなかったことを知っていたものとまったく同じです!私は素朴で、答えは大胆になると思っていた - 私はキャップのロックを期待して半分でした:)あなたのポイントはすべて意味があり、あなたはそれらをレイアウトする今非常に明らかに見える。彼らは終わるでしょう。アドバイスありがとう – popClingwrap

+0

問題ありません!多くの場合、サウンドボードが必要なだけで、明らかになります。 –

3

は一般的に、これらの設定はtesting purposesのために使用されています。これらの情報をパブリックにすることができると判断した場合にのみ、ユーザーがデータベースから読み取ることを許可できます。機密情報(ユーザー情報など)がある場合は、データベースを保護し、その情報を読むことができると判断したユーザーのみを許可することが必須です。したがって、後で認可を追加することを決定した場合は、データベースを保護する必要があります。それはライティングの目的に関しても同じです。

希望します。

+0

これは意味があります。私の場合、データはちょうどスコア値であり、ユーザーが名前として入力した文字列です。しかし、私はそれを開いたままにしておき、足元の道のりで自分自身を撃っていきたいと思っていませんでした。 – popClingwrap

+0

これは機密情報でなければ、公開情報として使用できます。 –

関連する問題