2016-03-23 7 views
0

私はフルスタック開発の世界に入り、フロントは完全にバックエンドから分離されているアプリケーションを開発しようとしています(フロントはノードサーバーとバックエンドjavaです)。残りのアプリケーションを保護する(別のビューとサーバー)+ソーシャルログイン

今、問題は - どのように私のアプリを確保するために取得する必要がありますか? 多くのフロントエンドと多くのバックエンドインスタンスをロードバランサで接続したいので、クライアント上のすべての状態を維持したいので、別のバックエンドサーバーに切り替えて何も起こらないようにしてください。

現在、私はOAuth2トークンを使用していますが、ユーザー側のCookieに完全に格納されているセキュリティとトークンの盗難に懸念しています。また、アプリケーションは(明らかに)それらのトークンをどこかに格納するので、私のバックエンドアプリケーションの別のインスタンスはトークンを受け入れません。最良のシナリオでは、私は自動的に新しいものを要求するいくつかのメカニズムを実装することができ、最悪の場合には再度ログインする必要があります。私はそれが起こることを望んでいません。

また、私は社会的な認証に問題があります。さて、私はGoogleからトークンを受け取っていますが、それをバックエンドに渡してユーザーを作成することは大きな苦痛です。そのようなユーザーを作成して保存するには、たくさんのコードを手作業で書く必要があります。

また、このソリューションのセキュリティレベルについてはわかりません。

質問は基本的に - 現在、フロントエンドとバックエンドを完全に分離する必要があるアプリを保護する最良の方法は何ですか?リクエスト間でスイッチバックエンドサーバーに問題はありません。

答えて

0

クライアントからトークンが盗まれた場合、これについては何もできません。自分自身を守るのはクライアントの責任です。つまり、サービスにアクセスするためのユーザー名とパスワードが必要で、クライアントがキーロガーに感染していて、ハッカーがこれらの資格情報を盗んだ場合、これを防ぐためにサーバー側で行うことは何もありません。

複数のバックエンドという考え方は、複数のアプリケーションサーバーを持つシステムの共通の機能です。たとえば、複数のWebサーバーがあり、任意のサーバーに要求をルーティングできるようにする場合などです。このためには、共有する必要のある情報を格納する中央データベースが必要です。明らかに遅いですが、はるかに弾力性があります。

関連する問題