Користувачі з IP-адресою Google. Як це можливо?


38

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

Деякий час тому я почав отримувати повідомлення від користувачів, які не можуть увійти. Коли я запитую їх IP-адресу, вони розповідають щось на зразок: 66.249.93.202. Це IP-адреса Google. Як вони отримують це у своїх мобільних телефонах? Що вони повинні зробити, щоб використовувати справжню IP-адресу?


12
Це може стати ще більш поширеним, оскільки IPv6 стає популярним, і люди використовують проксі-сервери IPv6-4. Якщо ви збираєтеся орієнтуватися на географічне націлювання, підтримуйте IPv6 і не робіть занадто багато припущень щодо національності мобільних телефонів.
MSalters

39
Щоб додати коментар MSalters, взагалі не покладайтеся на IP-адреси; шкідливі користувачі все одно обійдуться навколо нього (VPN, відкриті проксі-сервери тощо), і ви лише розчаруєте законних користувачів.

14
Що відбувається, коли хтось із ваших користувачів з Барселони подорожує до Тель-Авіва? Чи не зможе вона увійти в свій рахунок під час відрядження?
dotancohen

1
якщо ви хочете уникати IP-адреси Google, просто обслуговуйте своїх клієнтів через HTTPS, це обійде проксі-
Рікардо

Відповіді:


59

Що ви бачите, це адреса проксі Google.
Користувачі мобільних пристроїв із хромованим браузером (Android або iOS), у яких увімкнено функції управління пропускною здатністю, часто вважатимуться використанням одного з цих адрес як запитувача, як описано тут .

По суті, дані, які ви надаєте, запитуються проксі-сервісом Google для стиснення даних optimizedі повертаються кінцевому користувачеві.

Що вони повинні зробити, щоб використовувати свою реальну IP-адресу.

Вони не повинні робити щось інакше.
Ви можете перевірити x-forwarded-forзаголовок, як пояснено в раніше пов'язаній документації.


Я вражений тим, що Google пропонує функцію, для якої шифрування шкодить.
користувач253751

@immibis Це або це, або витягування nokia . Ви не можете оптимізувати те, що ви не можете розшифрувати, і ви не можете лобіювати https тільки Інтернет та розшифровувати його для власної вигоди.
Здійснює

4
Зауважте, що заголовок XFF можна легко підробити, тому є рішення з wikimedia, щоб перевірити, чи він "довірений" заголовку XFF
Sanya_Zol

25

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

І щоб відповісти на ваше запитання (з тієї ж сторінки):

Як власнику веб-сайту, як я можу виконувати гео-націлювання на IP-адресу?
IP-адреса мобільного пристрою передається на цільовий сервер через заголовок X-Forwarded-For. Власники сайтів повинні перевірити наявність цього заголовка, щоб правильно визначити місцезнаходження користувача на основі IP-адреси клієнта.


3
Здається, ми розмістили майже одночасно: D
Здійснюється

3
@Reaces ви були на 14 секунд швидшими: D
фальшивка

1
Проблема з X-Forwarded-For полягає в тому, що спочатку потрібно перевірити фактичну IP-адресу щодо списку надійних проксі-серверів, перш ніж ви можете довіряти заголовку. Крім того, користувач може просто відправити заголовок самостійно і вибрати будь-який IP, який їм подобається.
CodesInChaos

23

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

Ви, мабуть, так чи інакше повинні робити - тим більше, що ви згадали про це сторінки для входу та реєстрації.

Цитування з сторінки проксі-сервера для стиснення даних, згаданої в інших відповідях:

Чи оптимізований мій захищений трафік проксі-компресією?

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


7

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

Ви можете використовувати X-Forwarded-Forзаголовок HTTP для геолокації користувача на основі оригінального 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.