Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Bardzo dynamiczny adres IP
Forum PHP.pl > Forum > PHP
user2
Witam,

nie do końca wiem czy piszę tego posta na dobrym subforum, ale problem łączy kilka zagadnień, a rozwiązanie musi być w PHP.

Zagadnienie polega na tym, iż w sklepie internetowym używam sesji do obsługi zalogowanych klientów. Zgodnie z wieloma zaleceniami w sieci i na różnych forach (na tym bodaj również) zastosowałem tam weryfikacje USER_AGENT i REMOTE_ADDR. Niestety okazało się, że niektórzy klienci mają bardzo zmienne IP co skutkuje "restartem" sesji co kilka (ilość jest losowa) przeładowań strony.

Długo nie było wiadomo o co chodzi, ale, gdy sprawdziłem razem z klientem jego IP za pomocą $_SERVER['REMOTE_ADDR'] na moim serwerze okazało się, że co kilka (min. 1, max. 3) kliknięcia F5 adres IP ulega zmianie. Dokładnie rzecz biorąc kręci się w kółko, ale nie zmienia to faktu, że zapisanie adresu IP w sesji generuje tylko problemy.

W związku z tym mam do Was dwa pytania: czy znane są Wam tego typu przypadki "dynamicznego" IP (skąd to się może brać?) oraz czy istnieje jakiś inny (oprócz USER_AGENT) wyróżnik, który można by umieścić w sesji, żeby choć trochę uprzykrzyć życie "chakierom" smile.gif?

Z góry dzięki za wszelkie podpowiedzi i pomoc!
xxdrago
Ja mam np. taki aktualnie (IP). Hmm, a nie lepiej zrobić coś takiego:
http://php.pl/Wortal/Artykuly/Bezpieczenst...ssion-Hijacking ...
user2
Dzięki za linka, postaram się zastosować wskazówki do tego co już mam.

A o co Ci chodziło z tym "Ja mam np. taki aktualnie (IP)"? Spoofing?
by_ikar
Ostatnio zaglądałem do tego tematu i trochę bagatelizowałem sobie sprawę, bo nie miałem nigdy z taką do czynienia.. Aktualnie w jednej aplikacji, jeden z użytkowników który korzysta z internetu mobilnego, zaalarmował mi że dość często go wylogowuje i przy okazji niszczy całą sesję.. I póki co wyłączyłem sprawdzanie aktualnego adresu IP z adresem IP umieszczonym w sesji. Nie mniej, przyłączam się do pytania autora tematu. Czy ma ktoś pomysł jak dany problem ominąć?

Zastanawiałem się czy zamiast adresów IP, nie umieścić hostów, tyle że nie wiem szczerze mówiąc czy to jest aby na pewno dobry pomysł..
user2
No to widzę, że już nie tylko ja mam ten problem. Inna sprawa, że sporo osób może mieć z tym kłopoty, ale nie wiedzą, że to przez to IP.

W przypadku wspomnianego klienta sprawdzałem do kogo należały IP i czasami były zarejestrowane na Netię, a czasami na jego ISP. Trochę wygląda to na jakieś dziwne proxy. Sprawdzaliśmy w FF czy nie ma czegoś ustawionego np. przez swojego informatyka, ale w ustawieniach proxy było pusto.

Jakbyś trafił na jakieś dodatkowe objawy/cechy tego problemu daj znać, może wspólnymi siłami uda się ten temat rozkminić.
by_ikar
Wiesz co, zastanawiałem się nad tą kwestią, i wydaje mi się że wystarczy raz na jakiś czas, powiedzmy co 5-10min zregenerować sesję i wówczas nawet jeżeli ktoś przechwyci ID sesji, bo powiedzmy będziemy mieli dziurę xss na stronie, to musiałby w przypadku próby włamania się, od razu przystąpić do działania. Wydaje mi się że regeneracja sesji co 5 min, powinna być OK.. Google np nie sprawdza adresu IP w swoich sesjach, i możesz być na 10 komputerach jednocześnie zalogowany.

Ostatecznie zrobię to tak, regeneracja sesji co 5min, i będę tworzył sumę md5 z useragenta. Wiadomo, IP się zmieni, lub ktoś przechwyci ID sesji, pozostaje jeszcze w miarę szybka regeneracja, plus sprawdzanie sumy kontrolnej z user agenta. Nie wiem czy to rozwiązanie jest idealne, ale póki co w moich aplikacjach będę musiał tak pozmieniać, bo to IP w internecie mobilnym to jest jakaś masakra.. Zmienia się dosłownie samo i to praktycznie co chwila, w różnych losowych odstępach czasu.. ;/
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.