Задать вопрос
@Dima07-100
Слушаю умных людей

Сложно ли подделать IP апдрес при запросе $_SERVER['REMOTE_ADDR']?

Добрый день, уважаемые участники форума. Прошу помочь советом .
У меня есть сайт в базу данных которого записываются активные токены после аутентификации. В базе содержится информация :
ID токена
Ключ токена
Активный токен или нет ( 0 или 1 )
И IP адрес с которого зашёл авторизованные пользователь.
Так же на сайте есть отдельный PHP скрипт, который работает сам по себе. Данный PHP скрипт перед началом работы делает запрос в базу данных основной сайта и сравнивает IP из базы данных с $_SERVER['REMOTE_ADDR'] и если они совпадает и есть активный токен с таким IP, тогда скрипт продолжает работу.

Вопрос: Получается, что решение запускать скрипт или нет идёт только на основании совпадения IP адреса . Насколько токая проверка надёжна и сложно ли подделать IP адрес в моём случае .
  • Вопрос задан
  • 558 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Насколько я помню сетевые технологии, к которым на самом деле относится вопрос "Можно ли подделать IP адрес", подделать исходящий адрес в TCP заголовке можно. И такой запрос пройдет проверку. Но ответ на него уйдет на этот поддельный IP. То есть соединение оборвется на этапе TCP хэндшейка

Отсюда можно сделать вывод: подделать адрес можно, но это не поможет сделать что-то вредоносное.

Если поставить этому вопросу нормальные теги, а не взятые с потолка, то ответят настоящие специалисты в этом вопросе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В общем случае такая проверка вредна.
Пользователь может работать через нестабильное соединение. Тогда при каждом переподключении ему может выдаваться новый IP-адрес.
Ответ написан
Aetae
@Aetae
Тлен
Во-первых: ip для этого не стоит использовать вообще, это вещь перементивая.
Во-вторых: в теории REMOTE_ADDR не подделать, но то в теории, потому что всякая кака на твоей стороне любит его подменять для удобства. Например нередко можно встретить глубоко в чужом коде подобную дыру:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
$xffaddrs = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); 
$_SERVER['REMOTE_ADDR'] = $xffaddrs[0]; 
}
Ответ написан
gbg
@gbg Куратор тега Сетевое администрирование
Любые ответы на любые вопросы
Целый микрорайон, или даже город, может сидеть в интернетике с одного адреса. Так что ваша проверка - просто лажа.
Используйте нормальные очереди (RabbitMQ, Kafka) и не занимайтесь колхозом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы