Я хочу подсчет уникальных посетителей на моей веб-странице. Я получаю IP клиента с помощью следующей функции:XSS-атака в IP-адресе клиента
$ipaddress = '';
if ($_SERVER['HTTP_CLIENT_IP'])
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if($_SERVER['HTTP_X_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if($_SERVER['HTTP_X_FORWARDED'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if($_SERVER['HTTP_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if($_SERVER['HTTP_FORWARDED'])
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if($_SERVER['REMOTE_ADDR'])
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
Должен ли я называть htmlspecialchars()
функцию на него, прежде чем вставить его в базу данных? Я слышал, что можно манипулировать заголовками и изменять IP-адрес, чтобы добавить к нему XSS или SQL Injection (я уже вызываю функцию real_escape_string()
).
Вы должны ** никогда ** HTML-escape-значение, которое вы храните в столбце базы данных. Вы должны избегать текста, когда вы объединяете его в этот формат. Вам нужно понять, что означает побег. – SLaks
@SLaks Я хочу отобразить его (этот IP) в представлении администратора. Таким образом, это может быть вектор атаки – TN888
Включение этой проблемы в HTML. Хранить его в базе данных нет. (хотя вам нужно использовать параметры) – SLaks