From bf5c28cf2260df822efa72095af69cc119170a3e Mon Sep 17 00:00:00 2001 From: Callan Barrett Date: Fri, 4 Jan 2008 06:26:47 +0900 Subject: Fix bug with botched AURSID values In the check_sid function in aur.inc the condition for expiring the cookie and redirecting to hacker.php could never be met and instead the user would be given blank login instead of being considered logged out, now fixed. This also means we no longer need either hacker.php or timeout.php at all. Also, this bug seems to be present in the AUR version running on aur.archlinux.org. Signed-off-by: Callan Barrett --- web/lib/aur.inc | 8 +++----- web/template/header.php | 8 ++++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/web/lib/aur.inc b/web/lib/aur.inc index 4715648..0258060 100644 --- a/web/lib/aur.inc +++ b/web/lib/aur.inc @@ -78,7 +78,7 @@ function check_sid() { $q = "SELECT LastUpdateTS, UNIX_TIMESTAMP() FROM Sessions "; $q.= "WHERE SessionID = '" . mysql_real_escape_string($_COOKIE["AURSID"]) . "'"; $result = db_query($q, $dbh); - if (!$result) { + if (mysql_num_rows($result) == 0) { # Invalid SessionID - hacker alert! # $failed = 1; @@ -91,12 +91,10 @@ function check_sid() { } if ($failed == 1) { # clear out the hacker's cookie, and send them to a naughty page + # why do you have to be so harsh on these people!? # setcookie("AURSID", "", time() - (60*60*24*30), "/"); - # I think it's probably safe to do the same as below with this - # but not really vital at this point - header("Location: /hacker.php"); - + unset($_COOKIE['AURSID']); } elseif ($failed == 2) { # visitor's session id either doesn't exist, or the timeout # was reached and they must login again, send them back to diff --git a/web/template/header.php b/web/template/header.php index 5230dc5..440cb24 100644 --- a/web/template/header.php +++ b/web/template/header.php @@ -68,7 +68,10 @@ foreach ($SUPPORTED_LANGS as $lang => $lang_name) {
", username_from_sid($_COOKIE["AURSID"]), "")); +} else { if ($login_error) { print "" . $login_error . "
\n"; } @@ -81,9 +84,6 @@ if (!isset($_COOKIE["AURSID"])) { ", username_from_sid($_COOKIE["AURSID"]), "")); } ?>
-- cgit v1.2.3-70-g09d2