HTTP_AUTHORIZATION
はサーバー側の環境変数のようですが、どのような値にすることができますか?例はありますか?いくつかのHTTPヘッダーによって設定されていますか?
また、ユーザー名とパスワードを要求するときのブラウザー側の外観はどのようになりますか(HTMLフォームか、ユーザー名とパスワードを要求するポップアップボックスか(モーダルであるため、[OK]または[キャンセル]をクリックしない場合は、ブラウザはクリックできません))。
通常、ユーザーログインフォームはPOSTサーバーにPOST
username=peter&password=123
だからこれは何ですかHTTP_AUTHORIZATION
約?
同じページにいるので、典型的なPOSTリクエストは次のようになります。
POST/some/page HTTP/1.1 <-リクエストライン ホスト:www.example.com <-------------------\ ユーザーエージェント:Mozilla/5.0(Macintosh; U; Intel Mac OS X 10_6_6; en-US)<-|ヘッダー Content-Length:27 <-------------------/ ...その他のヘッダー... <-空白行 username = peter&password = 123 <-POSTデータ(ある場合)
HTTP_
で始まる環境変数は、 CGIスクリプト が動的コンテンツを提供する主な方法であった時代からの二日酔いであり、サーバー側のコードにクライアントは、リクエストの一部として特定のヘッダーを提供しました。 CGI仕様 から:
使用されるプロトコルがHTTPの場合、名前が「HTTP_」で始まるメタ変数には、クライアント要求ヘッダーフィールドから読み取られた値が含まれます。 HTTPヘッダーフィールド名は大文字に変換され、「-」のすべての出現箇所が「」に置き換えられ、メタを提供するために「HTTP」が先頭に追加されます-変数名。
多くのHTTP認証メカニズムで使用されるAuthorization:
ヘッダー。通常のフローは次のとおりです。
WWW-Authenticate:
ヘッダーで応答しますAuthorization:
ヘッダーを使用してリクエストを再送信しますチャレンジとレスポンスの正確な形式は、使用されている認証スキームによって異なります。 RFC2617(gpczがリンクしている)は、「基本」(最も一般的で、base64でエンコードされた「ユーザー名:パスワード」を送信)と「ダイジェスト」(暗号化ハッシュを含む)、および [〜#〜] ntlmをカバーしています。 [〜#〜] は、一部のWindows環境で見られるもう1つのものです。
HTTP Authorizationヘッダーの詳細な説明は、RFC2617( http://www.ietf.org/rfc/rfc2617.txt 、セクション3.2.2)にあります。
標準のJoomla!も注目に値するかもしれません。 .htaccess
ファイルには、リクエストのAuthorization
ヘッダーに基づいてHTTP_AUTHORIZATION
環境変数を設定するための次のルールが含まれています。
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]