Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] $_SERVER["REMOTE_ADDR"] to za mało :(
Forum PHP.pl > Forum > Przedszkole
turlajacy_dropsa
Witam. Robię w PHP stronę i chciałbym sprawdzić IP odwiedzającego
(wiem, było 1000 razy ale poczytaj uważnie)

  1. echo($_SERVER["REMOTE_ADDR"]);

i inne wynalazki zwracają zawsze ten sam wewnętrzny adres IP (192.168.0.1) niezależnie skąd wchodzę, czy lokalnie w sieci, w której działa ten serwer czy z jakiegokolwiek kompa (strona umieszczona jest nie na moim sprzęcie, dostępu do rutera nie mam ale podejrzewam że to on jest temu winien).

Wymyśliłem, że na pewno jest jakiś serwis, widget albo coś na zewnętrznym serwisie, który odpytany mógłby zwrócić prawdziwe IP (podobnie jak tu: http://www.adres-ip.pl/dlawebmastera.html). Tylko ja potrzebuję wykorzystać w PHP zwróconą wartość jako tekst a nie jakiś tam obrazek z IP. Poza tym widget wykonuje się po stronie klienta czyli już po ptakach. Ma ktoś jakiś pomysł?

Z góry dziękuję za podpowiedź.
H4eX
Poczytaj o
  1. HTTP_X_FORWARDED_FOR
siurek22
Cytat(H4eX @ 11.07.2010, 16:51:33 ) *
Poczytaj o
  1. HTTP_X_FORWARDED_FOR

niestety ta wartosc mozna modyfikowac, wystarczy ze dopiszesz sobie jedna linijke i mozesz w tym nawet kod php wyslac...
pozostaje ci remote_addr lub zrobienie skryptu w js ktory bedzie sprawdzal ip i wysle je do strony...
H4eX
Nie każdy ją zmodyfikuje.
siurek22
nie kazdy ale bardzo latwo to obejsc i wielu przypadkach ta wartosc staje sie punktem krytycznym wielu stron bo ludzie oczekuja ip i nie spodziewaja sie niczego innego...
kipero
Nawet jeśli wstawisz tam kod php to i tak się on nie wykona(chyba, że przepuszczasz to przez eval).
Co do tematu, to wyświetl sobie w kodzie zawartość $_SERVER i zobacz pod jakimi kluczami będzie ukryty adres IP.
siurek22
tak ale jezeli robisz sobie np logi w pliku txt to zonk, kolejna sprawa to ze mozna wcisnac sql injection, zero kreatywnosci...
kipero
Z moją kreatywnością jest raczej wszystko w porządku, do tej pory nie narzekam.
Podstawową rzeczą przy dodawaniu danych do bazy jest ich filtracja, niezależnie od tego co dodajemy. Poza tym pliki .txt też nie uruchomią żadnego kodu(chyba, że ktoś tak skonfiguruje swój serwer, ale nie spotkałem się jeszcze nigdy z takim przypadkiem), więc wg mnie zagrożenie jest tutaj znikome. Uprzedzając następne zarzuty, iż logi mogą być zapisywane w plikach .php, to potencjalny agresor musiałby dobrze znać strukturę plików na serwerze. Poza tym dobrym nawykiem jest trzymanie logów poza katalogiem public_html na serwerze.
siurek22
Filtracja ok, tyle ze wlasnie wiele osob nie wie o tym nie bezpieczenstwie i mysli co mi moze zrobic numer ip? Co do txt to duzo ludzi ma glupia praktyke robienie include('plik.txt') wiec to tez jest uzasadnione. Jezeli chodzi o sciezki na serwerze to chyba sobie zarty robisz jest je latwiej wyciagnac niz tylko ci sie wydaje... Dobry nawyk powiadasz, tylko czesc darmowych serwerow nie oferuje tego. Wiec jak mamy juz pisac o problemie to chyba lepiej uswiadomic ludzi o zagrozeniu...
kipero
Tu przyznam Ci rację. Jeśli ktoś nazywa pliki logi.txt, umieszcza w publicznie dostępnym katalogu i później je includuje to rzeczywiście może to stanowić zagrożenie. Jak to mówią, jak ktoś ma pecha to i w dupie palec złamie.
Cytat
Wiec jak mamy juz pisac o problemie to chyba lepiej uswiadomic ludzi o zagrozeniu...

Zamiast uświadamiać ludzi o zagrożeniach, może lepiej wyrobić im dobre nawyki - pierwszy to oczywiście filtracja wszystkich danych przesyłanych od użytkownika.
siurek22
ok dane przyslane od uzytkownika osoba sobie czyta jakis kurs napotyka $_SERVER zmienna srodowiskowa, ok skoro to jest zmienna srodowiskowa pochodzi od serwera to nie powinno byc z jej strony zagrozenia... wiec chyba juz rozumiesz w czym problem dla nas to jest oczywiste ze tu moze byc dowolna wartosc a osoba uczaca sie niema o tym pojecia, cos mi sie obilo o uszy ze nawet takie zadanie w hackem bylo i ogrom osob poleglo na tym...
wiec filtracja filtracja ale dobrze im tez powiedziec co maja filtrowac...
erix
Cytat
i inne wynalazki zwracają zawsze ten sam wewnętrzny adres IP (192.168.0.1) niezależnie skąd wchodzę, czy lokalnie w sieci, w której działa ten serwer czy z jakiegokolwiek kompa (strona umieszczona jest nie na moim sprzęcie, dostępu do rutera nie mam ale podejrzewam że to on jest temu winien).

Pytanie za sto punktów: jak wygląda konfiguracja FastCGI na Twoim serwerze? Bo z tego, co piszesz, to admin nie odrobił pracy domowej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.