2

私のランディングページは、ユーザーから名前、電子メールアドレスなどを受け取る購読の行動を呼びかける予定の近々のページです。ユーザは、購読するために認証される必要はない。彼はこのページを訪問する任意のランダムな人になることができます。ルールは ".read":false、 ".write":trueにする必要があります。しかし、Googleはwrite:trueを使うと誰もがアプリケーションを使わない人でもデータベースに書き込むことができると警告している。Firebaseリアルタイムデータベース:リンク先ページの正しいセキュリティルールは何ですか?

私はこれがCAPTCHAなどを置くまでは当然だと感じます。そのような問題にどのように取り組んでいますか?

答えて

2

セキュリティルール(すべての種類の迷惑メールを阻止するものではない、キャプチャやその他のソリューションに入る必要がある)を悪用しないようにするためにできることは、Firebaseで電子メール認証を設定し、メールの確認。 [認証]> [ログイン方法]> [電子メールを有効にする]の順に進みます。

データベースにユーザーの電子メールとユーザー名を保存すると、データベースに「ユーザー」ノードを作成し、Firebaseがユーザーに割り当てたユーザーIDで保存できます。

example of user id assigned by Firebase (0TTUfは... Firebaseによって割り当てられたIDである)

ユーザーが購読することが、あなたがちょうど彼らの電子メールとパスワードを維持する必要が必要がないようFirebaseは、パスワードを要求しますすべてのユーザーに模擬パスワードを割り当ててください。

それは次のようになります。

enter image description here

あなただけの自分の電子メールと名前をキャプチャしていて、ユーザーが認証される必要がないので、私はなぜ表示されませんユーザーに書き込み権限または読み取り権限を与えます。このデータを保存するには、プログラム内のロジックを実行してください。

次に、あなたのルールは次のようになります。

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

あなたはそれを自分で管理しているようにはユーザが読み取りまたはデータベースへの書き込みを許可されていません。それを要約

:、名前と電子メールを要求し、パスワードを割り当て、サインイン新規ユーザーとして Firebaseにこのデータを送信、 /ユーザー/ $ user_idを

の下で、電子メールと名前を保存します
関連する問題