Czy można zaufać $_SERVER['REMOTE_ADDR']
? Czy można go zastąpić, zmieniając nagłówek żądania lub coś w tym rodzaju?
Czy napisanie czegoś takiego jest bezpieczne?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
php
security
ip-address
Srebrne światło
źródło
źródło
$_SERVER['REMOTE_ADDR']
zmiennej, ustawiając nagłówek żądania HTTP. PHP automatycznie przedrostkuje wszystkie nagłówki żądań HTTPHTTP_
przy tworzeniu kluczy w obszarze$_SERVER
superglobalnym.Odpowiedzi:
Tak, to jest bezpieczne. Jest to źródłowy adres IP połączenia TCP i nie można go zastąpić przez zmianę nagłówka HTTP.
Jednym z przypadków, o które możesz się martwić, jest to, że jesteś za odwrotnym proxy, w którym to przypadku REMOTE_ADDR zawsze będzie adresem IP serwera proxy, a adres IP użytkownika zostanie dostarczony w nagłówku HTTP (takim jak X-Forwarded-For ). Ale dla zwykłego przypadku użycia odczyt REMOTE_ADDR jest w porządku.
źródło
$_SERVER['REMOTE_ADDR']
to adres IP, na który nadeszło połączenie TCP. Chociaż jest technicznie możliwe dwukierunkowe fałszowanie adresów IP w Internecie (poprzez ogłaszanie fałszywych tras przez BGP), takie ataki mogą zostać wykryte i niedostępne dla typowego atakującego - w zasadzie atakujący musi mieć kontrolę nad dostawcą usług internetowych lub operatorem. Nie ma (jeszcze) wykonalnych jednokierunkowych ataków fałszowania na TCP. Dwukierunkowe fałszowanie adresu IP jest jednak trywialne w sieci LAN.Należy również pamiętać, że może to nie być adres IPv4, ale adres IPv6. Twoje obecne sprawdzenie jest pod tym względem w porządku, ale jeśli sprawdzisz, że
1.2.3.4
występuje tylko w dowolnym miejscu w środku$_SERVER['REMOTE_ADDR']
, atakujący może po prostu połączyć się z2001:1234:5678::1.2.3.4
.Podsumowując, w przypadku aplikacji innych niż krytyczne (bankowe / wojskowe / potencjalne szkody> 50 000 €) możesz użyć zdalnego adresu IP, jeśli możesz wykluczyć atakujących w sieci lokalnej.
źródło
$_SERVER['REMOTE_ADDR']
jest to adres IP, na który nadeszło połączenie TCP, zależy całkowicie od twojego SAPI.you have been kicked off the wlan
pakietów za pomocą odpowiednich narzędzi.WPA downgrade test
na przykład googleJak wspomniano powyżej, nie jest to całkowicie bezpieczne. Ale to nie znaczy, że nie powinieneś go używać. Rozważ połączenie tego z innymi metodami uwierzytelniania, na przykład sprawdzaniem wartości COOKIE.
źródło