Fix possible injection using HTTP_X_FORWARDED_FOR

pull/3900/head
Renaud Lemaire 4 years ago
parent ae6aaea14a
commit b9bb577010
  1. 15
      main/webservices/testip.php

@ -3,9 +3,16 @@
/**
* @package chamilo.webservices
*/
$ip = trim($_SERVER['REMOTE_ADDR']);
$ip = '';
if (!empty($_SERVER['REMOTE_ADDR'])) {
$ip = trim($_SERVER['REMOTE_ADDR']);
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
list($ip1, $ip2) = preg_split('/,/', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($ip1);
if (filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6) == $_SERVER['HTTP_X_FORWARDED_FOR']) {
list($ip1, $ip2) = preg_split('/,/', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($ip1);
}
}
if (!empty($ip) && filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) {
echo htmlentities($ip);
}
echo htmlentities($ip);

Loading…
Cancel
Save