Я читал несколько раз, что получение IP-адреса от клиента с использованием $ _SERVER ['REMOTE_ADDR'] безопасно, потому что он НЕ МОЖЕТ быть изменен пользователем напрямую (только с помощью прокси-серверов и т. Д.), Но он всегда возвращает IP-адрес. До сегодняшнего дня я получил сообщение об ошибке с моего сайта о том, что ошибка mysql возникла в запросе, который проверяет, запрещен ли IP-адрес.
Raw запрос выглядит следующим образом:
SELECT * FROM `bans` WHERE `ip`='{$ip}'
и получить IP осуществляется с помощью
$ip = $_SERVER['REMOTE_ADDR']
Я не делал никакой дезинфекции на $ IP, потому что я предполагаю, что это не может быть изменен пользователем ... И я получил письмо, что не удалось этот запрос:
SELECT * FROM `bans` WHERE `ip`='1'"+order+by+1--+, 111.222.111.222'
(Примечание: Я поставил 111.222.111.222 вместо нападавших фактический IP)
Мой электронный сценарий также принимает IP с помощью $ _SERVER [ «REMOTE_ADDR»], так что я получил, что «фальшивый» IP там тоже:
IP: 1'"+order+by+1--+, 111.222.111.222
Его легко дезинфицировать, когда вы знаете, что его можно изменить, но я хочу знать, как это возможно?
Вы проверили связанные вопросы? – Rainulf
можете ли вы отслеживать этот запрос в журналах доступа к серверу? Что такое IP-адрес? –
Я могу, IP нормально в журналах - 111.222.111.222 - - [14/Июль/2013: 00: 04: 11 +0200] "POST /somefile.php HTTP/1.0" 200 561 "http: // www. site.com/some_other_file.php "" Mozilla/5.0 (Windows NT 6.1; rv: 21.0) Gecko/20100101 – Turshija