0

安全な ASP.NET Web サイトに、ログインが必要な Web サービス REST API があります。プログラムでユーザー名/パスワードを要求する最も安全な方法は何ですか? (URL に a を追加するだけで?username=me&password=mysecretは、(これが HTTPS 接続であっても) それほど安全ではないように思えます)。

4

1 に答える 1

2

必要なものを実現するには、いくつかの方法があります。

  • [間違った方法] クエリ文字列とともにユーザー名とパスワードを渡すことができます。理論的にはこの方法に問題はありませんが、そのような URL ( http://example.com?username=me&password=mysecret ) は通常、ブラウザやプロキシなどによってキャッシュされるため、他の誰かがアクセスできる潜在的なリスクを利用します。これらの保存されたデータを使用して、保護されたデータ。
  • [良い方法] ブラウザやプロキシなどのキャッシング機能に関連する「ほぼすべて」のリスクを取り除き、さらに HTTP プロトコルの標準機能を使用するには、特別なHTTP Authorization ヘッダーを処理する必要があります。

HTTP Authorization ヘッダー:

Authorization ヘッダーは次のように構成されます。

  1. ユーザー名とパスワードは、文字列 "username:password" に結合されます。

  2. 結果の文字列リテラルは、Base64 を使用してエンコードされます。

  3. 次に、認証方法と「Basic」などのスペースが、エンコードされた文字列の前に置かれます。

    たとえば、ユーザー エージェントがユーザー名として 'Aladdin' を使用し、パスワードとして 'open sesame' を使用する場合、ヘッダーは次のように形成されます。

    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

  • HTTP 接続を使用している場合は、ダイジェスト アクセス認証方式を使用する必要があります。HTTPS 接続ではより複雑で役に立たないため、必要に応じて詳細を読むことができます (ここで多分)。
于 2013-05-16T08:01:21.070 に答える