Как формируются ip адреса пользователей

Виталий Васильевич

Проверенные
Сообщения
2,117
Решения
27
Реакции
1,356
Баллы
8,430
Как бы согласно этой темы XF 2.1 - Беззаботность это все. Взлом проекта.

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-ip-adresov-forum-tomsk-ru-png.113910

Где можно поглядеть точней узнать почему такие идут ip адреса у все пользователей .. как искать двойников ...
 
Вот что ответили в тех поддержки .. у меня виртуальный хостинг.
Здравствуйте!
Адреса посетителей сайта в переменной окружения REMOTE_ADDR сохранются корректно на Вашем веб-сервере. Рекомендуем Вам обратиться к разработчику Вашего сайта для уточнения, как определяется IP-адрес.
 
. как искать двойников
у меня виртуальный хостинг.
переменной окружения REMOTE_ADDR сохранются корректно на Вашем веб-сервере
Открыть phpinfo и посмотреть в какое поле заголовка прилетает реальный ip. Потыкать хостера палочкой

Т.е. Вас вообще не смущает, что на скриншоте только локальные адреса, да?
10.0.0.0/8 - локальная подсеть, это не Интернет.
И чо?
 
Последнее редактирование:
Ещё раз. Полноценный пользователь стучится из локалки. Не через шлюз с локальным адресом, а именно сидя с локальным адресом.
Если удалённый веб-сервер не берёт айпишник-источник, это уже совсем другая проблема.
 
Ещё раз. Полноценный пользователь стучится из локалки. Не через шлюз с локальным адресом, а именно сидя с локальным адресом.
Причем тут вообще конечный пользователь. Кусок трассы выше - это трасса со стороны сервера, для примера. И ip у ТС c 10.0.0.0/8 - это не сетка какого нибудь домашнего прова, это то что прилетело на движок. А следовательно это либо трабла на транзите, например реверсивный прокси в конце концов, либо это трабла самого хоста, либо это трабла со стороны самого движка/плагина. Опять же например, если у хостера из моего примера ломается 4-й хоп, скажем антиддос (чтобы влазило на L7), то у меня вполне легально сломаются пользователи и будут бегать под 10.95.64.0.

Или, опять например, я, как клиент, могу засунуть в HTTP_X_FORWARDED_FOR какой нибудь 8.8.8.8 - схавает движок или нет?

Для того чтобы ответить на этот вопрос, нужно нужно смотреть заголовки - а проще всего это заглянуть в phpinfo в админке форума, что и как прилетает.
Отсюда и делать выводы.

PHP:
    public function getIp($allowProxied = false)
    {
        if ($allowProxied && $ip = $this->getServer('HTTP_CLIENT_IP'))
        {
            list($ip) = explode(',', $ip);
            return $this->getFilteredIp($ip);
        }
        else if ($allowProxied && $ip = $this->getServer('HTTP_X_FORWARDED_FOR'))
        {
            list($ip) = explode(',', $ip);
            return $this->getFilteredIp($ip);
        }

        if ($this->remoteIp === null)
        {    public function getIp($allowProxied = false)
    {
        if ($allowProxied && $ip = $this->getServer('HTTP_CLIENT_IP'))
        {
            list($ip) = explode(',', $ip);
            return $this->getFilteredIp($ip);
        }
        else if ($allowProxied && $ip = $this->getServer('HTTP_X_FORWARDED_FOR'))
        {
            list($ip) = explode(',', $ip);
            return $this->getFilteredIp($ip);
        }

        if ($this->remoteIp === null)
        {
            $ip = $this->getTrustedRealIp($this->getServer('REMOTE_ADDR'));
            $this->remoteIp = $this->getFilteredIp($ip);
        }

        return $this->remoteIp;
    }

            $ip = $this->getTrustedRealIp($this->getServer('REMOTE_ADDR'));
            $this->remoteIp = $this->getFilteredIp($ip);
        }

        return $this->remoteIp;
    }
PHP:
    protected function getTrustedRealIp($ip)
    {
        $via = $this->getServer('HTTP_VIA');
        if ($via && strpos(strtolower($via), 'chrome-compression-proxy'))
        {
            // may have Google Data Saver enabled
            $realIps = $this->getServer('HTTP_X_FORWARDED_FOR');
            if ($realIps)
            {
                $realIps = explode(',', $realIps);
                $realIp = end($realIps);
                $realIp = trim($realIp);

                if ($realIp === $ip || $this->ipMatchesRanges($ip, self::$googleIps))
                {
                    // if the IP comes from a known Google IP, then we can trust that they put the client IP
                    // in X-Forwarded-For. (They should have appended it to the end.)
                    return $realIp;
                }
            }
        }

        $cfIp = $this->getServer('HTTP_CF_CONNECTING_IP');
        if ($cfIp && $cfIp !== $ip)
        {
            if ($this->ipMatchesRanges($ip, self::$cloudFlareIps))
            {
                // connection from known CloudFlare IP, real IP in their header
                return $cfIp;
            }
        }

        return $ip;
    }
 
Последнее редактирование:
Много виртуальных хостингов видели, куда стучатся полноценные пользователи из локалки?
Кстати. О пользователях. Отдельным постом, чтобы можно было ссылаться на него.

Гипотетическая ситуация, которая может поставить в ступор неопытного одмина.
Исходные данные - локалка 10.12.14.0/24 (исходя из поста ТС). Выход в инет - через проксю (например школа, фильтрация трафика и все дела). Прокся правильная, честно ставит ip пользователя в Forwarded (X-Forwarded-For/X-Forwarded-Host/X-Forwarded-Proto и т.д.). Со стороны сервера ngx_http_realip_module честно берет X-Forwarded-For, выковыривает оттуда реальный ip пользователя, отдает движку. Или уже сам движок выковыривает и подставляет, это по access-логам будет видно.
Итого, одмин в ступоре, но все правильно работает. Фиксить можно разве что выковыривая через set_real_ip_from BOGON-сети, но это не точно (ибо ничего не мешает мне засунуть в X-Forwarded-For все что угодно).
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу