Как сравнить мой публичный ip и удаленный адрес посетителя для предоставления доступа к логину в php

0

Я создаю сайт, где мне нужно войти в систему, но мне нужно предоставить доступ только тем пользователям, у которых есть мой общий публичный IP-адрес, поэтому я могу предположить, что логин был выполнен из той же области. Любая помощь будет очень оценена, и я использую REMOTE_ADDR для сравнения.

  • 1
    А? Разве это не то, для чего нужен брандмауэр?
  • 0
    За ваш комментарий я многое узнал о брандмауэрах, и это было очень полезно и интересно.
Теги:
login
remote-access

1 ответ

1
Лучший ответ

Кроме того, такой авторизацией является UNSAFE, вы должны использовать такой код:

$ip = getIp();
$authIp = 'IP YOU WANT TO COMPARE TO';

if($ip == $authIp) 
{
//access granted
}

function getIp(){
$ip = '';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
  return $ip;
}
  • 0
    спасибо, как это можно улучшить, чтобы быть более безопасным, а также мне нужно сравнивать IP каждый раз, как каждую минуту, или чуть больше, чтобы, когда я получил другой IP-адрес, закрывал текущий сеанс.
  • 0
    Я хотел бы добавить к этому ответу, что это небезопасно, поскольку заголовки, такие как HTTP-X-FORWARDED_FOR могут быть легко подделаны до прибытия на сервер. Таким образом, основывать систему входа в систему на них, как уже сказал Ty221, очень небезопасно .
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню