Пользователи с IP-адресом Google. Как это возможно?


38

У меня есть испанский сайт, и я не позволяю людям из неевропейских стран зарегистрироваться и войти в систему.

Некоторое время назад я начал получать сообщения от пользователей, которые не могут войти. Когда я спрашиваю их IP-адрес, они говорят что-то вроде: 66.249.93.202. Это IP-адрес Google. Как они получают это в своих мобильных телефонах? Что они должны сделать, чтобы использовать свой реальный IP-адрес?


12
Это может стать еще более распространенным, поскольку IPv6 становится популярным, и люди используют прокси IPv6-to-4. Если вы собираетесь использовать геотаргетинг, поддерживайте IPv6 и не делайте слишком много предположений о национальности мобильных телефонов.
MSalters

39
Чтобы добавить к комментарию MSalters, не полагайтесь на IP вообще; В любом случае злоумышленники будут обходить его (VPN, открытые прокси и т. д.), и вы в конечном итоге раздражаете только законных пользователей.

14
Что происходит, когда один из ваших пользователей из Барселоны едет в Тель-Авив? Не сможет ли она войти в свой аккаунт во время командировки?
dotancohen

1
если вы хотите избежать того, чтобы IP-адрес Google просто обслуживал ваших клиентов через HTTPS, это обойдёт прокси-сервер сжатия данных
Ricardo

Ответы:


59

То, что вы видите, это адрес прокси Google.
Мобильные пользователи с браузером Chrome (Android или iOS), у которого включены функции управления полосой пропускания, часто рассматриваются как использующие один из этих адресов в качестве инициатора запроса, как описано здесь .

По сути данные, которые вы обслуживаете, запрашиваются прокси-сервером сжатия данных Google optimizedи отправляются обратно конечному пользователю.

Что они должны сделать, чтобы использовать свой реальный IP-адрес.

Они не должны делать что-то по-другому.
Вы можете проверить x-forwarded-forзаголовок, как описано в ранее связанной документации.


Я поражен, что Google предлагает функцию, для которой вредно шифрование.
user253751

@immibis Это либо так, либо тянет нокию . Вы не можете оптимизировать то, что вы не можете расшифровать, и вы не можете лоббировать Интернет только для https и расшифровывать его для своей собственной выгоды.
Reaces

4
Обратите внимание, что заголовок XFF может быть легко подделан, поэтому есть решение из Викимедиа, чтобы проверить, является ли он «доверенным» заголовком XFF
Sanya_Zol

25

Вероятно, они используют Google прокси сжатия данных ( https://developer.chrome.com/multidevice/data-compression ).

И чтобы ответить на ваш вопрос (с той же страницы):

Как владелец сайта, как мне выполнить геотаргетинг по IP?
IP-адрес мобильного устройства перенаправляется на сервер назначения через заголовок X-Forwarded-For. Владельцы сайта должны проверить этот заголовок, чтобы правильно определить местоположение пользователя на основе IP-адреса клиента.


3
Похоже, мы разместили почти одновременно: D
Reaces

3
@ Похоже, ты был на 14 секунд быстрее: D
фейкер

1
Проблема с X-Forwarded-For заключается в том, что вам сначала нужно проверить фактический IP по списку доверенных прокси, прежде чем вы сможете доверять заголовку. В противном случае пользователь может просто отправить заголовок самостоятельно и выбрать любой IP-адрес, который ему нравится.
CodesInChaos

23

Вы можете получить IP-адрес пользователя напрямую, если вы просто обслуживаете сайт по HTTPS .

Вы, вероятно, должны делать это в любом случае - тем более, что вы упомянули, что это страницы входа и регистрации.

Цитирование со страницы прокси сжатия данных, упомянутой в других ответах:

Оптимизирован ли мой безопасный трафик с помощью прокси сжатия?

Нет, прокси-сервер сжатия данных работает с незашифрованным трафиком: HTTPS-запросы отправляются непосредственно с мобильного устройства на сервер назначения.


7

Возможно, эти пользователи используют Chrome (мобильный) с прокси сжатия данных ( https://developer.chrome.com/multidevice/data-compression )

Вы можете использовать X-Forwarded-ForHTTP-заголовок для определения местоположения пользователя на основе исходного IP-адреса пользователя (см. FAQ)


X-Forwarded-ForЗаголовок может быть легко подделать, так что это не безопасно полагаться на этот заголовок.
Тим

1

У меня та же проблема. Но я не получил настоящий IP, у X-Forwarded-For меня включена функция сохранения данных, но индекс X-Forwarded-For не установлен для информации заголовка. Также я проверил HTTP_X_REAL_IP индекс. Это также установлено с IP-адресом Google.

Наконец я нашел правильный IP в HTTP_FORWARDEDзначении индекса какfor=203.192.231.124

echo $_SERVER['HTTP_FORWARDED']

Так что просто удалите текст for=из значения, и вы получите IP.

$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.