1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-09 19:26:53 +02:00

some adjustements (changes to sessions code need to be backwards-compatible) - henry, do not forget to include this into your merge to 3.2.x too.

git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8565 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen
2008-05-18 20:06:15 +00:00
parent 5828612677
commit c41388ce8a

View File

@ -264,16 +264,17 @@ class session
$s_forwarded_for = ($config['forwarded_for_check']) ? substr($this->data['session_forwarded_for'], 0, 254) : ''; $s_forwarded_for = ($config['forwarded_for_check']) ? substr($this->data['session_forwarded_for'], 0, 254) : '';
$u_forwarded_for = ($config['forwarded_for_check']) ? substr($this->forwarded_for, 0, 254) : ''; $u_forwarded_for = ($config['forwarded_for_check']) ? substr($this->forwarded_for, 0, 254) : '';
// referer checks // referer checks
$check_referer_path = $config['referer_validation'] == REFERER_VALIDATE_PATH; // The @ before $config['referer_validation'] suppresses notices present while running the updater
$check_referer_path = (@$config['referer_validation'] == REFERER_VALIDATE_PATH);
$referer_valid = true; $referer_valid = true;
// we assume HEAD and TRACE to be foul play and thus only whitelist GET // we assume HEAD and TRACE to be foul play and thus only whitelist GET
if ($config['referer_validation'] && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) !== 'get') if (@$config['referer_validation'] && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) !== 'get')
{ {
$referer_valid = $this->validate_referer($check_referer_path); $referer_valid = $this->validate_referer($check_referer_path);
} }
if ($u_ip === $s_ip && $s_browser === $u_browser && $s_forwarded_for === $u_forwarded_for && $referer_valid) if ($u_ip === $s_ip && $s_browser === $u_browser && $s_forwarded_for === $u_forwarded_for && $referer_valid)
{ {
@ -1119,7 +1120,7 @@ class session
trigger_error($message); trigger_error($message);
} }
return ($banned) ? true : false; return ($banned && $ban_row['ban_give_reason']) ? $ban_row['ban_give_reason'] : $banned;
} }
/** /**
@ -1297,10 +1298,10 @@ class session
$this->set_login_key($user_id); $this->set_login_key($user_id);
} }
} }
/** /**
* Check if the request originated from the same page. * Check if the request originated from the same page.
* @param bool $check_script_path If true, the path will be checked as well * @param bool $check_script_path If true, the path will be checked as well
*/ */
function validate_referer($check_script_path = false) function validate_referer($check_script_path = false)