2016-09-27 12 views
5

最近読んでいたのは、次のとおりです。articleAngularJSアプリケーションでの認証のテクニック彼のコンセプトは、私がこのプロセスに通常どのようにアプローチするかと非常に似ていますが、パスワードがクリアテキストでコントローラにバインドされる方法は、セキュリティ上の欠陥のように思えます。AngularJSのパスワードを正しく保護する方法

<input type="password" id="password" ng-model="credentials.password"> 

片方向、私は、コントローラのバインドされたパスワードを暗号化すると思いますか?それを行う方法はありますか?

+0

あなたはすでにこれを見ましたか? https://stackoverflow.com/questions/18959962/how-to-store-password-in-angularjs-securely – Jireugi

+0

パスワードがクライアント側でプレーンテキストであるかどうかは関係ありません。クライアントはすでにパスワードを知っているので、SSL暗号化を解除すると、さらに重大な問題が発生し、SSLを持っていなくても誰かがリクエストを受け入れることができれば、本当のパスワードやクライアントからのハッシュされたパスワードをキャッチしても、そのユーザーアカウントにはまだアクセスできます。 – adeneo

答えて

1

ディスカッションに私の5セント:

1)あなたのログインビューが存在する間だけコントローラが存在します。ログイン情報を送信すると、通常はビューが変更され、コントローラが破棄されます。

2)セッションの全期間にわたって存在していても、データに到達するにはかなり複雑なスキームが必要です。

3)また、あなたはさらにリスクを最小限にするアイテムの数を持っている:

  • 使用します。https

  • 使用は、サーバー側で

をサーバ証明書に署名しました(httpsを使用している場合、ブラウザはhttpリソースへのajax呼び出しを発行できません。証明書がsigendでなく、例外が追加されていない場合はhttps要求が失敗しますサイト)

4)最後に、サーバーがサポートしている場合、認証にoAuthを使用することを検討することがあります。

5)Ofc。それはすべて、アプリケーションに必要なセキュリティのレベルに依存します。スマートカード上のクライアント証明書や追加のワンタイムコードなど、別の認証方法を検討する必要があります。類似。

関連する問題