私のアプリケーションは、Googleを使ったAngularJS + Firebase認証を使用しています。以下に示すように、それはデータベースにそのユーザーのエントリを作成したアプリケーションにユーザーがサインアップとして :許可されたユーザーからの自分のデータを更新するためのfirebaseデータの保護
user
->Firebase Unique Key
-> UserId: "google ID"
-> User Name: "User Name"
-> Payment Status:"No"
今、ユーザーがログイン後、ユーザーが支払いオプションと支払い後は、その特定のIDのデータベース値を行われているが表示されますされます上記のJSONに示すように、「Payment Status」に対して値が設定されます。支払いステータスが「はい」になると、ユーザーだけがメインページを表示することができます。
以下に示すように、私はセキュリティルールを作成しました:
{
"rules": {
".read": "true",
"user":{
".write": "auth.provider == 'google' && auth.uid!=null"
}
}}
今の質問は次のとおりです。グーグルを使ってログインできるすべてのユーザがこのデータベースへの書き込みアクセス権を持っています。したがって、一度ユーザーが承認されると、ユーザーはデータベースを変更することができます。また、ユーザーはlocalhostから自分のコードを実行してデータベースを変更することができます。データをハックして支払いステータスを「はい」とマークしてメインのWebサイトに進むことは望ましくありません。
権限のあるユーザーがこのデータベースで悪意のある行為をしないようにする方法。
フランクの回答に感謝します。しかし、ユーザーがローカルホストで同じコードのコピーを実行できないようにするには、Firebaseには何もありません。データベースにアクセスすると、自分のローカルホストからfirebase URLを参照することで、悪意のある行為を確実に実行できます。 localhost – Lani
"firehostには、ローカルホストで同じコードのコピーを実行しないようにする方法がありますか?"いいえ、それはあなたの質問ですが、重複としてマークする。ユーザーがコードのコピーを実行していて、設定したセキュリティルールに固執している場合、どのような悪意のある使用方法がありますか? –
いくつかの悪質なスクリプトを格納することで、データベースをあふれさせることができます。上記のあなたの答えによると、私はサーバーを使用する場合にのみこれを停止することができます。しかし、私はちょうどクライアント側の言語とfirebaseを使用する場合は、その場合、彼らはデータベースにアクセスすると、データベースに何かを格納することができます。 – Lani