-1

私は最近、Angular.js Webアプリケーションを開発している会社と仕事をしていました。彼らはデータベースソリューションとしてFirebaseを使用していましたが、appディレクトリのアプリケーション設定ファイルの中で、彼らはFirebaseの秘密鍵を使ってFirebaseで認証をバイパスしています。本物のAngular.jsアプリの設定ファイルを表示できますか?

私は不思議でした、どのように安全ですか?誰かがDevToolsやその他の方法でFirebaseのキーをプロダクションで読むことができますか?構成ファイルで認証資格情報を使用することをお勧めしますか?それらのファイルを醜くすることはどんな方法でも役立ちますか?

更新:

彼らはAngular.jsアプリと(彼らは複数のリポジトリを持っていた)Node.jsのサーバーのいずれかの両方で秘密鍵を使用していました。

サーバーとは対照的に、アプリケーションの秘密鍵がどの程度安全であるかを知りたいですか?

+0

下記の純粋なAngularJSアプリの回答。しかし、あなたはnode.jsでタグ付けされています。それがアプリケーションアーキテクチャにどのように適合するか説明できますか? –

+0

同社には、角度を使わずにNode.jsだけを使用していたサーバーもあったため、アプリケーションと同じ方法で構成ファイルを使用していました。 –

+0

この説明は現在不明です。これは秘密を使ってFirebaseに接続するAngularJSアプリですか?それともFirebaseに接続するカスタムトークンを作成するカスタムバックエンドに接続するAngularJSアプリですか? 2つのシナリオは非常に異なっており、1つの明確な説明がなければ、私たちは手助けできません。質問にすべての詳細を記入し、必要に応じて図を描画してください。 –

答えて

1

Firebaseデータベースの秘密を知っていると、管理者レベルでそのデータベースにアクセスできます。そのため、データベースにアクセスするのに慣れていない限り、アプリのユーザーと共有する必要はありません。とにかくそれに慣れていれば、とにかくセキュリティルールを実装しないかもしれません。

Firebase以外のサーバーコンポーネントを持たない純粋なAngularJSアプリケーションの場合は、すべてがユーザーのブラウザで実行する必要があります。これは、秘密がユーザのブラウザにあることを意味します。これは説明したようにセキュリティリスクです。

ファイルのUglifying/obfuscatingは大きな助けにはなりません。値はまだそこにあります。解決策は、ユーザーに適切な認証をさせることで、不正アクセスからデータベースを保護できるようにすることです。

+0

Firebaseの秘密鍵がサーバー上でのみ実行されていて、アプリケーションがサーバーに対してユーザーを認証している場合、それらの認証キーはブラウザにあります。サーバー認証の資格情報は公開できませんか?そして、第三者がユーザーとして自分自身を認証していますか? –

+0

つまり、firebase認証と比較してサーバ認証はどのように機能しますか? –

関連する問題