Użytkownicy z adresem IP Google. Jak to jest możliwe?

38

Mam hiszpańską stronę internetową i nie pozwalam osobom z krajów pozaeuropejskich na rejestrację i logowanie.

Jakiś czas temu zacząłem otrzymywać wiadomości od użytkowników, którzy nie mogą się zalogować. Gdy pytam o ich adres IP, mówią coś w rodzaju: 66.249.93.202. To adres IP Google. Jak dostają to w swoich telefonach komórkowych? Co muszą zrobić, aby użyć swojego prawdziwego adresu IP?

użytkownik1406271
źródło
12
Może to stać się jeszcze bardziej powszechne, ponieważ IPv6 staje się popularne, a ludzie używają serwerów proxy IPv6 do 4. Jeśli masz zamiar kierować na lokalizację geograficzną, obsługuj protokół IPv6 i nie przyjmuj zbyt wielu założeń dotyczących narodowości telefonów komórkowych.
MSalters
39
Aby dodać do komentarza MSalters, w ogóle nie polegaj na adresach IP; złośliwi użytkownicy i tak będą go obejść (VPN, otwarte serwery proxy itp.), a ty będziesz tylko denerwować legalnych użytkowników.
14
Co dzieje się, gdy jeden z twoich użytkowników z Barcelony podróżuje do Tel Awiwu? Czy nie będzie mogła zalogować się na swoje konto podczas podróży służbowej?
dotancohen
1
jeśli chcesz uniknąć adresu IP Google, po prostu obsługuj swoich klientów za pośrednictwem HTTPS, to pominie serwer proxy kompresji danych
Ricardo

Odpowiedzi:

59

To, co widzisz, to adres serwera proxy Google.
Użytkownicy mobilni z przeglądarką Chrome (Android lub iOS) z włączonymi funkcjami zarządzania przepustowością będą często postrzegani jako używający jednego z tych adresów jako requestera, jak opisano tutaj .

Zasadniczo dane, które podajesz, są żądane przez serwer proxy kompresji danych Google optimizedi odsyłane do użytkownika końcowego.

Co muszą zrobić, aby użyć swojego prawdziwego adresu IP.

Nie powinni robić nic inaczej.
Możesz sprawdzić x-forwarded-fornagłówek, jak wyjaśniono w poprzednio połączonej dokumentacji.

Reaces
źródło
Dziwi mnie, że Google oferuje funkcję szkodliwą dla szyfrowania.
user253751
@immibis Albo to, albo ciągnąc nokia . Nie możesz zoptymalizować tego, czego nie możesz odszyfrować, i nie możesz lobbować za internetem https i odszyfrować go dla własnej korzyści.
Reaces
4
Zauważ, że nagłówek XFF można łatwo sfałszować, dlatego istnieje wikimedia rozwiązanie, aby sprawdzić, czy jest to „zaufany” nagłówek XFF
Sanya_Zol
25

Prawdopodobnie używają proxy kompresji danych Google ( https://developer.chrome.com/multidevice/data-compression ).

I aby odpowiedzieć na twoje pytanie (z tej samej strony):

Jako właściciel witryny, jak wykonywać kierowanie geograficzne IP?
Adres IP urządzenia mobilnego jest przekazywany do serwera docelowego za pomocą nagłówka X-Forwarded-For. Właściciele witryn powinni sprawdzić ten nagłówek, aby poprawnie określić lokalizację użytkownika na podstawie adresu IP klienta.

oszust
źródło
3
Wygląda na to, że opublikowaliśmy prawie jednocześnie: D
Reaces
3
@Uwaga, że ​​byłeś 14 sekund szybciej: D
oszust
1
Problem z X-Forwarded-For polega na tym, że najpierw musisz sprawdzić rzeczywisty adres IP na liście zaufanych serwerów proxy, zanim będziesz mógł zaufać nagłówkowi. W przeciwnym razie użytkownik może po prostu sam wysłać nagłówek i wybrać dowolne IP.
CodesInChaos
23

Możesz uzyskać adres IP użytkownika bezpośrednio, jeśli po prostu udostępniasz witrynę przez HTTPS .

Prawdopodobnie i tak powinieneś to zrobić - zwłaszcza, że ​​wspomniałeś, że są to strony logowania i rejestracji.

Cytowanie ze strony serwera proxy kompresji danych wspomnianego w innych odpowiedziach:

Czy mój bezpieczny ruch jest optymalizowany przez proxy kompresji?

Nie, serwer proxy kompresji danych działa na nieszyfrowanym ruchu: żądania HTTPS są wysyłane bezpośrednio z urządzenia mobilnego do serwera docelowego.

goncalopp
źródło
7

Być może ci użytkownicy używają Chrome (mobilnego) z serwerem proxy kompresji danych ( https://developer.chrome.com/multidevice/data-compression )

Możesz użyć X-Forwarded-Fornagłówka HTTP do geolokalizacji użytkownika na podstawie pierwotnego adresu IP użytkownika (patrz FAQ)

sfk
źródło
X-Forwarded-ForNagłówka można łatwo sfałszowane, więc to nie jest bezpieczne polegać na tym cel.
Tim
1

Mam ten sam problem. Ale nie dostałem prawdziwego adresu IP X-Forwarded-For Mam włączoną funkcję oszczędzania danych, ale indeks X-Forwarded-For nie jest ustawiony w informacjach nagłówka. Sprawdziłem także indeks HTTP_X_REAL_IP. Jest również ustawiony z adresem IP google.

W końcu znalazłem poprawne IP w HTTP_FORWARDEDwartości indeksu jakofor=203.192.231.124

echo $_SERVER['HTTP_FORWARDED']

Więc po prostu usuń tekst for=z wartości, a otrzymasz IP.

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

Makarand Mane
źródło