問題タブ [firebase-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 自分のウェブサイト (クライアント側のコード) だけが Firebase バックエンドと通信できるようにするにはどうすればよいですか?
Firebaseについて読んだことがありますが、私がやりたいことは素晴らしいようです。認証と、特定のログインユーザーがさまざまなことを行うことを許可されているルールに基づいている方法について読んだことがあります。よかった。
ただし、別のタイプのセキュリティについてはよくわかりません。自分のサイト (クライアント側の JavaScript を使用)だけが firebase-backend と通信できるようにするにはどうすればよいですか? 私が尋ねているのは、誰かがクライアント側のコード (私の特定の firebase バックエンドを指す URL) から私の firebase エンドポイントを検索して、それを使い始めるのを防ぐ方法がないからです。
これは、匿名ユーザー ロールへの書き込みを許可したい状況では特に気になります。(例: おそらくいくつかの分析)
これについて私の心をクリアにする助けがあれば幸いです。
firebase - ユーザーごとに firebase オブジェクトをクエリする
次のようなデータ構造があります。
「/farms」をクエリすると、認証されたユーザーが所有者であるファームのリストを取得したいと思います。また、ユーザーが所有者ではないファームを表示できないようにしたいと思います。
私のルールは現在次のようになっています。
.read をこのレベルに置くことで、/farms/:farmid 経由でアクセスしたときに、個々のファームへの読み取りアクセスを許可していることがわかります。そして、「.read」を「farms」レベルに移動すると、リスト全体への読み取りアクセスが許可されます。
だから私は自分のデータを再構築する必要があると思いますが、これを行う最善の方法がわかりませんか? 特定のファームにも多数の「編集者」ユーザーを追加したいので、ユーザー オブジェクトの下にファーム オブジェクトを追加したくありません。
ご協力いただきありがとうございます
angularjs - 複雑なセキュリティ ルール要件のコンテキストで Firebase のデータを非正規化/構造化する方法は?
私の元のタイトルは「安全なユーザー アクセスのために、Firebase でユーザー (アカウント) データを構造化して保護する方法」でした。これがこの質問の領域であるため、代わりに、より一般的な質問を作成できると考えました。
私はhttps://www.firebase.com/blog/2013-04-12-denormalizing-is-normal.htmlに精通していると言っていました
が、この記事と同じくらい素晴らしいですが、私の問題にはまったく当てはまりません。だからここに行きます。
まず、メール/パスワード認証タイプのシンプル ログインを使用します (ただし、ユーザーのメールの検証にサーバー側のコーディングが必要な場合は、代わりにペルソナを使用する可能性があります)。
ユーザー データ (読み取りユーザー アカウント) が格納された userData オブジェクトがあります。各ユーザーは、自分のアカウントに保存されているデータのみを読み取ることができる必要があります。すべてのユーザーがアクセスする実際のデータは、comingdata という別のノードに保存されます。
ユーザーが今後のデータのどのデータにアクセスできるかは、ユーザーが行った購入の種類によって決まります。
「サブスクリプション」タイプのユーザーは、サブスクリプションが期限切れになるまですべてのデータにアクセスできます。「now」変数を使用して、セキュリティ式でこれを実現できると思います。
「購入」タイプのものは、購入した(配列にリストされている)データのみにアクセスできます。
admin@mydomain.com は、すべてのユーザーのすべてのデータを読み取ることができる必要がありますが、今後のデータ ノードに対してのみ書き込み (および読み取り) を行う必要があります。
Firebaseに保存しようとしているテストデータ構造は次のとおりです。
「。」のため、これは機能しません。文字。
次のような DOT マングルを使用する必要があります。
むしろ、userData ノードの作成時に「push()」「空」のユーザー アカウントを作成し、ユーザーのユーザー名を {"id" : "admin@mydomain.com"} プロパティとして保存する必要がありますか?
Firebase でセキュリティ ルールを設定して、購入が成功したとき (PayPal など) の書き込みを除いて、userData の内容を常に読み取り専用にするにはどうすればよいですか?
これは、サーバー コードに頼らなくても安全に実行できますか?
サーバーのみが Firebase にデータを書き込むことができるようにセキュリティ ルールを設定できることはわかっていますが、これにはサーバー側のコードが含まれ、有効な PayPal 支払い通知 (IPN) に応答して適切なデータを書き込むことになります。 -サーバー側のコーディングにあまり熟練していないため(node.jsを成功させることができるはずですが)、回避したい側のコードだけでなく、LAMPスタック共有サーバーは必要なVPSよりもはるかに安価であるためです。ノード用 (ああ、私は php を実行できません :( )。
クライアント コードは、素晴らしい Angular.js / angularFire コンボを使用して開発されます。Jared さん
、
お時間を割いていただきありがとうございます。
security - AngularFire (JavaScript/noBackend) アプリを監視するためのシステム ロギング?
こんにちは、私はAngularFireアプリを構築しています.
- ログインに失敗しました
- 書き込み/読み取りの失敗
- HTTP リクエスト/レスポンス
このコードを JavaScript で記述できますか? 悪意のあるユーザーがコードを変更して、特定のログ メッセージを表示できなくなるのではないでしょうか?
この種の機能が安全であることを確認するために、人々はどのようなソリューションを行ってきましたか?
アプリで何らかのアクティビティを行う場合、ログ メッセージを添付する必要があるというセキュリティ ルールを作成することは可能ですか?
防弾というものは何もないことはわかっていますが、人々が思いついた安全なソリューションを聞いてみたいと思います. ありがとう!!!!!
firebase - ユーザーの書き込み権限を許可せずにユーザーの情報を更新する
ユーザーがアプリの有料ユーザーになることを許可するルールを Firebase でどのように設定できますか? たとえば、次のデータ構造があるとします。
ユーザーが自分で更新することを許可しないように (リクエストをごまかして)、firebase ルールを設定するにはどうすればよいでしょうか。
数字をランダムに生成して、ユーザーにその数字の入力などを求めることを考えましたが、うまくいかないと思います... 誰かがこのようなことをしましたか?
firebase - サーバー側のコードを使用せずに、ユーザー認証なしで安全な方法で firebase と統合できますか?
私のサイトは、フォームのある 1 ページだけです。ユーザー認証機能がありません。サーバー側のコードを安全な方法で通過させずに、クライアント側の Firebase 統合を引き続き使用できますか? はいの場合、firebase 接続の詳細を保護するにはどうすればよいですか?
firebase - Firebaseでエスケープされた電子メールベースのユーザーアカウントを認証する方法は?
Firebase Simple Login のメール/パスワード認証オプションを使用しています。
エスケープされた電子メールをキーとしてユーザーのデータを保存します。ユーザー ID をキーとして使用するのではなく、文字を「,」に置き換えました (Firebase では「.」をキーに格納できないため)。問題は、セキュリティ ルールで正規表現を使用して、エスケープされた電子メールを auth.email 変数に対して認証できないことです。したがって、次のことはできません。
各 $user は 'some,one@domain,co,uk' のように見えるため、auth.email は 'some.one@domain.co.uk' です。
この問題を回避する方法はありますか? ユーザーごとの認証を可能にするために、各 $user 内にユーザー ID を保存する必要がありますか? この場合、エスケープされた電子メールではなく、ID ベースのノードにユーザー データを格納する方が簡単だと思います。