renamed variables to reflect content, and improved matching code
This commit is contained in:
@@ -28,12 +28,13 @@ function PMA_getIp()
|
|||||||
|
|
||||||
/* Do we trust this IP as a proxy? If yes we will use it's header. */
|
/* Do we trust this IP as a proxy? If yes we will use it's header. */
|
||||||
if (isset($GLOBALS['cfg']['TrustedProxies'][$direct_ip])) {
|
if (isset($GLOBALS['cfg']['TrustedProxies'][$direct_ip])) {
|
||||||
$proxy_ip = PMA_getenv($GLOBALS['cfg']['TrustedProxies'][$direct_ip]);
|
$trusted_header_value = PMA_getenv($GLOBALS['cfg']['TrustedProxies'][$direct_ip]);
|
||||||
// the $ checks that the header contains only one IP address
|
$matches = array();
|
||||||
$is_ip = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}$|', $proxy_ip, $regs);
|
// the $ checks that the header contains only one IP address, ?: makes sure the () don't capture
|
||||||
if ($is_ip && (count($regs) > 0)) {
|
$is_ip = preg_match('|^(?:[0-9]{1,3}\.){3,3}[0-9]{1,3}$|', $trusted_header_value, $matches);
|
||||||
|
if ($is_ip && (count($matches) == 1)) {
|
||||||
// True IP behind a proxy
|
// True IP behind a proxy
|
||||||
return $regs[0];
|
return $matches[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user