$_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ę z 2001: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.