安全な ASP.NET Web サイトに、ログインが必要な Web サービス REST API があります。プログラムでユーザー名/パスワードを要求する最も安全な方法は何ですか? (URL に a を追加するだけで?username=me&password=mysecret
は、(これが HTTPS 接続であっても) それほど安全ではないように思えます)。
質問する
154 次
1 に答える
2
必要なものを実現するには、いくつかの方法があります。
- [間違った方法] クエリ文字列とともにユーザー名とパスワードを渡すことができます。理論的にはこの方法に問題はありませんが、そのような URL ( http://example.com?username=me&password=mysecret ) は通常、ブラウザやプロキシなどによってキャッシュされるため、他の誰かがアクセスできる潜在的なリスクを利用します。これらの保存されたデータを使用して、保護されたデータ。
- [良い方法] ブラウザやプロキシなどのキャッシング機能に関連する「ほぼすべて」のリスクを取り除き、さらに HTTP プロトコルの標準機能を使用するには、特別なHTTP Authorization ヘッダーを処理する必要があります。
HTTP Authorization ヘッダー:
- HTTP S接続を使用している場合は、基本アクセス認証方式を使用できます。
Authorization ヘッダーは次のように構成されます。
ユーザー名とパスワードは、文字列 "username:password" に結合されます。
結果の文字列リテラルは、Base64 を使用してエンコードされます。
次に、認証方法と「Basic」などのスペースが、エンコードされた文字列の前に置かれます。
たとえば、ユーザー エージェントがユーザー名として 'Aladdin' を使用し、パスワードとして 'open sesame' を使用する場合、ヘッダーは次のように形成されます。
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
- HTTP 接続を使用している場合は、ダイジェスト アクセス認証方式を使用する必要があります。HTTPS 接続ではより複雑で役に立たないため、必要に応じて詳細を読むことができます (ここで多分)。
于 2013-05-16T08:01:21.070 に答える