3

私は Firebase を探して遊んでいましたが、とても興味深いものでした。

これまでのところ、いくつかの簡単な認証とセキュリティ ポリシーの設定を試してみましたが、ドキュメントに記載されていないように見える問題があり、Google やここでは何も見つかりませんでした。

問題は、メール/パスワードごとの同時ログイン数を制限する方法が見つからないことです。

有料の顧客が一度に 1 つの IP からしかログインできないオプションが欲しいです。言い換えれば、人々がアカウントを購入し、それを友人や家族と共有し、同じ資格情報を使用して同時にシステムに接続できるようにしたくありません。

前もって感謝します。

4

1 に答える 1

4

ユーザーがログインするたびに、Firebase のパスに書き込むことでアクセスを制御します。その後、そのパスをチェックして、一度に 1 人のユーザーのみが存在することを確認できます。

  • ユーザーがログインするたびにパスに値を書き込む (例: logged_in_users/$user_id)
  • ユーザーが切断したときにonDisconnect()を使用してその値を削除します
  • 追加のログイン試行でそのパスの値を確認してください
  • 値が存在する場合はエラーを表示し、存在しない場合はログインを許可します

これにより、UX 部分が処理されます。エクスプロイトから保護するには、Firebase の包括的なセキュリティ ルールを利用します。

  • カスタムログイン戦略を使用して独自の認証トークンを生成する
  • トークン内のデータの一部として IP アドレスを含める
  • Logged_in_users/$user_id が別の IP アドレスに設定されている場合、ログイン試行を拒否します
  • 他の IP からの読み取り/書き込みを防止するセキュリティ ルールを作成する

IP アドレスを含むトークンを生成したと仮定すると、セキュリティ ルールは次のようになります。

".read": "root.child('logged_in_users/'+auth.uid).val() === auth.ip_address"
于 2013-11-03T16:47:53.160 に答える