I have a PHP site which uses HTTP user authentication, I just noticed something wierd at the logs, I saw someone is accessing with username '-', which doesn't exist. I tried loging in using username '-' with no password and I was in!
The only thing I can think of is that '-' is a special character for strcmp, here is my authentication function(I removed the database connection part): function authenticate(){ if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="garin"'); header('HTTP/1.0 401 Unauthorized'); echo 'Illegal entrance'; return FALSE; } else { $euser=mysql_escape_string(htmlspecialchars($_SERVER['PHP_AUTH_USER'],ENT_QUOTES));; $query='SELECT password FROM garin WHERE username=\'' . $euser . '\';'; $result = mysql_query($query) or die(mysql_error()); $row= mysql_fetch_array($result,MYSQL_ASSOC); if(strcmp(htmlspecialchars($_SERVER['PHP_AUTH_PW'],ENT_QUOTES),$row["password"]) || (strcmp($euser,mysql_escape_string(htmlspecialchars("-")))) ){ header('WWW-Authenticate: Basic realm="garin"'); header('HTTP/1.0 401 Unauthorized'); echo "Illegal entrance."; return FALSE; } $query='UPDATE garin SET lastlogin=NOW() WHERE username=\'' . $euser . '\';'; mysql_query($query); return TRUE; } } ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]