2011-03-08 26 views
1

Android/iOS(およびそれ以降のWindows Phone)を対象とするWebアプリケーション(HTMLおよびJavascriptで開発された)にサードパーティサービスとの統合を追加したいと考えています。したがって、私はすべての「現代的」な機能にアクセスできます。このサードパーティサービスは資格情報を必要とし、GET-Parametersを介して制御されます。
たとえば、リクエストURLは「http://www.example.org/foo?username=user & password = 1234」のようになります。Javascriptを使用してログイン資格情報を保存するには?

ハッシュ化されたパスワードを受け入れるようにサードパーティのサービスを変更することは、アクセス権がないためオプションではありません。

サービスを使用するたびに、またはアプリケーションを起動するたびにユーザ名とパスワードを入力したくないので、私は彼の認証情報をどうにか保存したいと思います。

今、私はそれを行うための最善の方法は不思議です。
本当の "セキュリティ"はここの錯覚だが、私はそれらを間違った方法で保存することで、不要なリスクにクレデンシャルを公開したくないということを知っている。

私はすでにいくつかの方法

  • プレーンクッキーについて考えた:最も 簡単な方法 - それは、このシナリオでは、十分な を「確保」とは?
  • DOM-Storage: さんの関係のCookieとの違いはありますか?
  • 暗号化されたクッキー: 資格情報は暗号化されますが、 ページ のソースコードを見たり、それをデバッグするとき、あなたが簡単にキー を見つけることができます。

どちらを選択すればよいですか?より良い方法はありますか?
それが実際にそれに価値があるencrpytionで気になっているのは、それが簡単にひび割れることができますか?

答えて

2

すべての方法が悪く安全ではありません。だから、あなたはhttpsでこれを実行する - あなたはパラメータを取得するユーザー名とパスワードを送信ですか?

これを行う方法は、通常、ユーザー名とパスワードを保存するのではなく、ユーザーセッションを識別するGUID /ハッシュを作成し、そのセッションを永続化させることです。

こうして、他の誰かがセッションにアクセスしても、ユーザー名/パスワードは取得できません。その一環として、既存のパスワードを提供しない限り、パスワードを変更することはできません。

絶対にユーザー名/パスワードの送信が必要な場合は、バックエンドプロキシ経由でサードパーティサービスに接続し、認証してください。

+0

はい - サードパーティサービスはhttpsを使用します。しかし、私は*変更することはできません - 私は本当にセッション識別子だけを格納することをお勧めします。しかし、それは不可能です。 – Matthias

+0

@ winSharp93:認証にバックエンドプロキシを使用する場合は、ユーザ名/パスワードをクライアントに公開する必要はありません。 –

+0

不可能です。私は普通のHTML/Javascriptファイルを私のサーバにアップロードすることしかできません。 – Matthias

関連する問題