1

一部のコンテンツは公開され、他のコンテンツは認証されたユーザーにのみ表示されるサイトが欲しいです。したがって、認証は可能ですが、必須ではありません。これが可能かどうか知りたいのですが。

いくつかの背景:

そもそもクライアント認証が利用可能であることを伝えるために、いくつかのヘッダーを送信する必要があります。私がRFC2617を理解しているように、「WWW-Authenticate」ヘッダーフィールドは常に「401(Unauthorized)」応答の一部でなければなりません。

これで、一部のクライアント(wgetなど)は401ヘッダーを取得すると試行を停止します(wgetは実際には「Unauthorized」ではなく「AuthorizationRequired」という用語を使用します)。

それで、これはwgetのバグですか、それともオプションのhttp基本認証のようなものはありませんか?

4

1 に答える 1

5

401 Unauthorized特に、承認が必要であるが提供されていない(または正しく提供されていない)場合に使用します。

あなたのシナリオでは、WWW-Authenticate認証を必要とするリクエストのヘッダーのみを送信します-認証がキャンセルされた場合、または満足のいくものでない場合は、を返し401ます。

ユーザーは、認証を必要とする要求を行うまで、認証を求められません。オプションの認証を持つリクエストはありません-リクエストは匿名ユーザーに許可されるかどうかのどちらかです。

いくつかの理由から、HTTP認証はWebサイトのログインには不適切な選択であることに注意してください。

  • ログアウトの概念はありません
  • 認証の詳細はプレーンテキストで送信されます(SSL経由の場合を除く)
  • インターフェイス/UXは修正できません
  • パスワードのリマインダー、自己登録、パスワードの最小要件などはありません

HTTP認証は、サイトが静的であった時代から来ているため、セキュリティはWebサーバーレベルで処理されていました。

于 2013-01-19T21:26:21.487 に答える