Bug #16653: $PHP_AUTH_PW accessible when authentication is done by Apache
| From: | stefan dot peer at tiwag dot at | Date: | Wed, 17 Apr 2002 07:56:56 +0000 |
| Subject: | Bug #16653: $PHP_AUTH_PW accessible when authentication is done by Apache | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-5171@lists.php.net to get a copy of this message | ||
From: stefan.peer@tiwag.at
Operating system: SuSE Linux 7.x
PHP version: 4.1.2
PHP Bug Type: Apache related
Bug description: $PHP_AUTH_PW accessible when authentication is done by Apache
This bug is security related. The password of any user which is
authenticated via Apache is still accessible through $PHP_AUTH_PW to any
user who is able to execute php-scripts. I'm using mod_auth_samba to
authenticate users with their windows-passwords.
http://www.php.net/manual/en/features.http-auth.php
states, that "In order
to prevent someone from writing a script which reveals the password for a
page that was authenticated through a traditional external mechanism, the
PHP_AUTH variables will not be set if external authentication is enabled
for that particular page. In this case, the $REMOTE_USER variable can be
used to identify the externally-authenticated user.
Configuration Note: PHP uses the presence of an AuthType directive to
determine whether external authentication is in effect. Remember to avoid
this directive for the context where you want to use PHP authentication
(otherwise each authentication attempt will fail)."
Unless I'm completely mistaken, $PHP_AUTH_USER and $PHP_AUTH_PW are set,
regardless of the existence of the 'AuthType'-directive.
________________________________________________________
testme.php:
<?=$PHP_AUTH_USER?>
<br>
<?=$PHP_AUTH_PW?>
<br>
<?=$REMOTE_USER?>
Configuration:
---------------
* SuSE Linux 7.3
* Apache 1.3.23:
...
<Location "/testme.php">
AuthType Basic
Options FollowSymLinks
AllowOverride None
AuthSambaEnabled On
AuthAuthoritative On
AuthName "php_auth_pw Test"
AuthSambaDomain tiwag:exchange,hvntsna
require valid-user
Order Allow,Deny
Allow from all
</Location>
...
Compile options:
LIBS="/lib/security/pam_smb_auth.so -lpam /usr/lib/libdbm.so" \
./configure --prefix=/usr/local/apache \
--add-module=src/modules/extra/mod_auth_samba.c \
--enable-module=access \
--enable-module=actions \
--enable-module=alias \
--enable-module=asis \
--enable-module=auth \
--enable-module=auth_digest \
--enable-module=autoindex \
--enable-module=cgi \
--enable-module=dir \
--enable-module=env \
--enable-module=expires \
--enable-module=headers \
--enable-module=imap \
--enable-module=include \
--enable-module=info \
--enable-module=log_config \
--enable-module=mime \
--enable-module=mime_magic \
--enable-module=negotiation \
--enable-module=setenvif \
--enable-module=so \
--enable-module=speling \
--enable-module=ssl \
--enable-module=status \
--enable-module=userdir \
--server-uid=httpd \
--server-gid=httpd \
--with-perl=/usr/bin/perl
* PHP 4.1.2
Compile options:
./configure --prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-magic-quotes \
--with-bz2 \
--with-java=/usr/lib/java \
--with-mcrypt \
--enable-mailparse \
--with-mysql=/usr/local/mysql \
--with-ncurses \
--with-pdflib=/usr/lib \
--with-mm=/usr/lib \
--enable-sockets \
--enable-trans-sid \
--enable-memory-limit \
--enable-shared \
--enable-static \
--enable-tsrm-pthreads \
--with-gnu-ld
--
Edit bug report at http://bugs.php.net/?id=16653&edit=1
--
Fixed in CVS: http://bugs.php.net/fix.php?id=16653&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=16653&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=16653&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=16653&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16653&r=support
Expected behavior: http://bugs.php.net/fix.php?id=16653&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=16653&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=16653&r=submittedtwice