HTTP_AUTHORIZATION
seems to be a server side environment variable, but what values can it be? Are there examples? Is it set by some HTTP headers?
Also, how does it look like on the browser side when it asks for username and password (is it an HTML form or is it a popup box that asks for username and password (which is modal and so if not clicking OK or Cancel, then the browser cannot be click on)).
Usually, a user login form will POST to the server with POST variables such as
username=peter&password=123
so what is this HTTP_AUTHORIZATION
about?
A detailed description of the HTTP Authorization header can be found in RFC2617, located at http://www.ietf.org/rfc/rfc2617.txt , section 3.2.2.
It might also be worth noting that the standard Joomla!
.htaccess
file has the following rule in it to set theHTTP_AUTHORIZATION
environment variable based on theAuthorization
header in the request:Just so we're on the same page, a typical POST request looks something like this:
The environment variables beginning
HTTP_
are a hangover from the days when CGI scripts were the main way to serve dynamic content, and they indicate to your server-side code that the client supplied a particular header as part of the request. From the CGI spec:The
Authorization:
header used in a number of HTTP authentication mechanisms; the usual flow is:WWW-Authenticate:
header containing a scheme and (sometimes) a challengeAuthorization:
header containing a response to the challengeThe exact format of the challenge and response differs depending on which authentication scheme is in use; RFC2617 (which gpcz linked to) covers "basic" (most common, sends base64-encoded "username:password") and "digest" (contains a cryptographic hash), and NTLM is another that's seen in some Windows environments.