ID: 32392
Updated by: [EMAIL PROTECTED]
Reported By: lacak at users dot sourceforge dot net
-Status: Open
+Status: Bogus
Bug Type: Feature/Change Request
Operating System: Win
PHP Version: 4.3.10
New Comment:
1. In safemode, you can't.
2. They can't simulate the realm in safemode, but they don't need to.
Adding the user id to the realm means you can't pretend to be them, but
if the user has already visited and logged into that other site and then
visit your site, without even sending an Authenticate header their
browser will send you their Authorization header for the other site
(assuming same domain like example.com/~bob vs. example.com/~joe) and
if you could grab all the request headers you will now have stolen the
user's username and password.
3. This is not a support forum
Previous Comments:
------------------------------------------------------------------------
[2005-03-21 12:38:37] lacak at users dot sourceforge dot net
Please reply ...
------------------------------------------------------------------------
[2005-03-21 11:58:27] lacak at users dot sourceforge dot net
Thank you rasmus, for reply :
1. So how can I use "HTTP Digest Authorization" in PHP script ? (is it
inpossible ? really is no solution, todasy ? or in the future ?)
2. Why is it security problem ? When safe_mode=on, then uid is added to
realm, so other scripts on same shared (ISP) server cannot simulate the
same realm and so steal passwords ?
And at other : when I use "HTTP Basic Authorization", then
$_SERVER["PHP_AUTH_USER"] and $_SERVER["PHP_AUTH_PW"] are set (so may
be steal) when safe_mode=on, but header Authorization is not set.
------------------------------------------------------------------------
[2005-03-21 10:31:21] [EMAIL PROTECTED]
That would allow you to steal passwords from other scripts on the same
shared server which is exactly what safemode is designed to counteract.
So no, this won't change.
------------------------------------------------------------------------
[2005-03-21 09:23:48] lacak at users dot sourceforge dot net
Description:
------------
Help PHP Developers, please, please
if PHP is running as Apache module in safe_mode=on
in result of function apache_request_headers() is not included
Authorization header.
When I use "HTTP Digest Authorization" in my PHP script I cannot
validate clients response, because I can not obtain supplied
Authorization header.
Please change behavior of apache_request_headers(), so it hides
Authorization header only if :
(safe_mode=on) && (AuthType is set to [Basic|Digest] in httpd.conf or
.htaccess)
so only if Apache performs authentication
Please rply ...
Thank you
Reproduce code:
---------------
Sample code :
<?php
$headers=apache_request_headers();
if (isset($headers["Authorization"]) {
print_r($headers);
phpinfo();
exit;
}
if (isset($_SERVER["PHP_AUTH_USER"])) {
echo $_SERVER["PHP_AUTH_USER"].":".$_SERVER["PHP_AUTH_PW"];
print_r(apache_request_headers());
phpinfo();
exit;
}
if (!empty($_SERVER["REMOTE_IDENT"])) {
echo $_SERVER["REMOTE_IDENT"];
print_r(apache_request_headers());
phpinfo();
exit;
}
if (!empty($_SERVER["Authorization"])) {
echo $_SERVER["Authorization"];
print_r(apache_request_headers());
phpinfo();
exit;
}
Header( "HTTP/1.0 401 Unauthorized");
Header( "WWW-Authenticate: Digest realm=\"www.myrealm.com\",
opaque=\"opaque\", nonce=\"nonce\", stale=\"false\", qop=\"auth\"");
print_r(getallheaders());
exit;
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32392&edit=1