2016-08-15 16 views
1

私はTSでAngular2を使ってWebアプリケーションを構築したいと思います。Angular2でのセキュリティとTS

私はAngular2の認証についていくつかのチュートリアルを読んで、次のことを実装する必要があると言います。

  1. インデックスコンポーネント(パブリック)
  2. ログインコンポーネント(パブリック)
  3. 私のプライベートコンポーネント(プライベート)

このすべてのコンポーネントは、角度-ルータでルーティングされ、いくつかのガードで保護されています。

しかし、私はこのガードが本当に安全ではないと思います。ルートは保護されていますが、コンポーネントはクライアントのjsのどこかにあります。 一部の「js-hacker」は、アクセス許可なしでプライベートコンポーネントにアクセスできます。

私はこの考えを正しくしていますか?

私の解決策は、認証要求中にプライベートコンポーネントを要求し、ユーザーに許可がある場合にのみそれを返すことです。

しかし、この場合、ログイン部分と私的な部分でアプリケーションを分割する必要がありました。 (オーバーヘッドのようです)

また、「js-hacker」がコンポーネントを見ることができるように、すべての要求にトークンを送信することもできます。そのため、そのデータは役に立ちません。 (ただし、このトークンを保存する必要があります)

セキュリティの面でどの方法を選択するか、私には良い方をお勧めしますか?

ありがとうございました。

答えて

2

を使用すると、セキュリティで保護されたコンポーネントを有効な認証ステータスに条件付きで接続できます。 *ngIfを偽と評価するようにバインドしている場合は、それを表示から隠すだけでなく、コンポーネントとその内部のすべてをDOMから完全に削除します。

もし彼らが何をしているのか分かっていれば、コンポーネントのソースコードを見ることができますが、推測したように、機密データをソースコードから守り、認証されたユーザーに対して安全です。

は本当にです。GoogleのFirebaseをご覧ください。 Firebaseはあなた自身よりもはるかに安全かつ確実に認証を処理できます.Firebase Realtime Databaseを使用して機密データを保存し、のみユーザが認証されるとクライアントに送信します。それは、信じられないほどです。Angular(AngularFire2は公式ライブラリですが、それは必要ありませんが)と非常によく機能し、データベースと認証だけでなく、さらに多くの機能を備えています。私を信じて、あなたはそれを後悔しません。

関連する問題