Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sesje, cookies czy przez url?
sobstel
post 24.06.2004, 10:24:43
Post #1





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


ostatnio duzo myslalem o sesjach i tak sie zastanawialem, ktory sposob przekazywania zmiennych jest lepszy: przez cookies czy przez przekazywanie id sesji w adresie (url). jak wiadomo w tej pierwszej metodzie problem pojawia się gdy ktoś ma wyłączoną obsługę cookies, w tej drugiej gdy ktoś da adres strony (a w nim tez id) znajomemu. standardowe polaczenie tych dwoch metod nie likwiduje problemu drugiego. osobiscie mysle, ze stanowi to dosyc duza dziure w sytsemie i zastanawialem sie czy po prostu nie wymuszac na uzytkownikach wlaczania cookies (z jasnym wytlumaczeniem w jakim celu). co o tym sadzicie?


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
hwao
post 24.06.2004, 11:57:51
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Możesz zrobic wlasne 'zabezpieczenia' wystarczy poczytac o artykule na php.pl jak zrobic aby sesje sie zapisaywaly do bazy. Mozesz tam juz dowalnie rozszerzyc 'wybieranie' danych z sesji nie tylko po session id ale mozesz dodac takrze przegladarke ip i takie tam :]
Go to the top of the page
+Quote Post
sobstel
post 24.06.2004, 17:46:42
Post #3





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


sprawdzanie przeglądarki może być pewnym rozwiązaniem, ale oczywiście nie w pełni zadowalającym (wystarczy ze te 2 osoby maja ta samo, o co nie jest trudno).

co do kontroli IP to też o tym myślałem, ale ma to też jedną wadę, tzn. co gdy IP jest przydzielany dynamicznie, tak jak np. w neostradzie? IP się zmienia, a wtedy użytkownik "wypada" z sesji.

z chęcią bym poznał co rozumiesz przez "i takie tam" bo ja nie mogę za bardzo nic wymyślić...


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
kicaj
post 24.06.2004, 18:06:52
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Najlepsze rozwiazanie podal hwao - link do artykułu.

- Cookie nie kazdy ma wlaczone i nie bedzie przestawial bo ty tak bedziesz wymagal
- IP sa dynamiczne lub jedno na cala siec...


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
sobstel
post 24.06.2004, 18:23:38
Post #5





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


artykul znam dobrze, ale nie on jest przedmiotem tej dyskusji. co prawda jest bardzo pomocny w robieniu wlasnych 'sprawdzaczy' sesji... sęk w tym, że nie za bardzo mogę się doszukać jakichś konkretnych sensownych rozwiązań na podstawie których możnaby weryfikować sesję.

cookies dalej wydają mi się najbezpieczniejszym rozwiązaniem...


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
mateusch
post 21.10.2004, 20:06:29
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.08.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(sopel @ 2004-06-24 17:46:42)
co do kontroli IP to też o tym myślałem, ale ma to też jedną wadę, tzn. co gdy IP jest przydzielany dynamicznie, tak jak np. w neostradzie? IP się zmienia, a wtedy użytkownik "wypada" z sesji.

tzw "wypadanie" z sesji w neostradzie niew powinno byc groźne. IP nie jest zmieniany w trakcie polaczenia, tylko po odłączeniu, mozna uzyskac inny IP, tak jak to bylo podczas laczenia przez modem (tak mi sie wydaje)
Go to the top of the page
+Quote Post
sobstel
post 21.10.2004, 22:15:49
Post #7





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(mateusch @ 2004-10-21 20:06:29)
tzw "wypadanie" z sesji w neostradzie niew powinno byc groźne. IP nie jest zmieniany w trakcie polaczenia, tylko po odłączeniu, mozna uzyskac inny IP, tak jak to bylo podczas laczenia przez modem (tak mi sie wydaje)

mysle, ze jesli bezpieczenstwo jest naprawde istotne trzeba dolaczyc krycie poprzez ip, ewentualnie zaimplemntowac system logowania, ktory po prostu po zalogowaniu odsyla od razu na poprzednio ogladana strone.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
hawk
post 22.10.2004, 08:15:30
Post #8





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


Cytat(mateusch @ 2004-10-21 20:06:29)
tzw "wypadanie" z sesji w neostradzie niew powinno byc groźne. IP nie jest zmieniany w trakcie polaczenia, tylko po odłączeniu, mozna uzyskac inny IP, tak jak to bylo podczas laczenia przez modem (tak mi sie wydaje)

IP jest zmieniany w trakcie połączenia. Inaczej od ponad roku miałbym ten sam IP winksmiley.jpg.
Go to the top of the page
+Quote Post
sobstel
post 22.10.2004, 09:46:40
Post #9





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(hawk @ 2004-10-22 08:15:30)
IP jest zmieniany w trakcie połączenia. Inaczej od ponad roku miałbym ten sam IP winksmiley.jpg.

chodzi o to ze nie jest zmieniany co 2 minuty. jak ci sie zmieni IP to wywalam prosbe o ponowne zalogowanie i kontunuujesz wedrowke po stronie.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
MoD
post 30.10.2004, 15:24:33
Post #10





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

Ostrzeżenie: (0%)
-----


A jak nie wywalisz prośby o ponowne zalogowanie i ktoś dostanie jego IP to się zdziwi smile.gif


--------------------
Go to the top of the page
+Quote Post
sobstel
post 21.11.2004, 13:36:11
Post #11





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(MoD @ 2004-10-30 15:24:33)
A jak nie wywalisz prośby o ponowne zalogowanie i ktoś dostanie jego IP to się zdziwi smile.gif

nie rozumiem, na jakiej zasadzie ktos mialby dostac jego IP?


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
poligon
post 21.11.2004, 14:13:27
Post #12





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 21.11.2004

Ostrzeżenie: (0%)
-----


Cytat(sopel @ 2004-11-21 12:36:11)
Cytat(MoD @ 2004-10-30 15:24:33)
A jak nie wywalisz prośby o ponowne zalogowanie i ktoś dostanie jego IP to się zdziwi smile.gif

nie rozumiem, na jakiej zasadzie ktos mialby dostac jego IP?

Choćby z takiej że adres PI wróci do puli przydzielanych adresów...
Go to the top of the page
+Quote Post
sobstel
post 21.11.2004, 14:49:46
Post #13





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(poligon @ 2004-11-21 14:13:27)
Cytat(sopel @ 2004-11-21 12:36:11)
Cytat(MoD @ 2004-10-30 15:24:33)
A jak nie wywalisz prośby o ponowne zalogowanie i ktoś dostanie jego IP to się zdziwi smile.gif

nie rozumiem, na jakiej zasadzie ktos mialby dostac jego IP?

Choćby z takiej że adres PI wróci do puli przydzielanych adresów...

powiem szczerze, ze w tym momencie sie zgubilem i nie wiem o co chodzi. w moim rozumieniu to jest tak, ze ktos wchodzi na stronie, dostaje id sesji, jako sprawdzacz pobieram jego ip jako jedna ze zeminnych sesji. potem ten ktos wywoluja kolejna strone i sprawdzam czy ip przypisane do id jest to samo co wysylajacego zadanie. jesli nie to wyskauje prosba o ponowne zalogowanie.

probelmem postawionym na poczatku byla kwestia dynamicznego ip i czy mozna wiec opierac sie na ip jako zabezpieczenia, skoro moze sie zmienic. wniosek byl taki, ze ip nie zmienia sie na tylo czesto, aby byl to bardzo powazny problem, uniemozliwiajacy zastosowanie ip do walidacji id sesji.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
MoD
post 21.11.2004, 15:55:37
Post #14





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

Ostrzeżenie: (0%)
-----


Cytat(sopel @ 2004-11-21 15:49:46)
Cytat(poligon @ 2004-11-21 14:13:27)
Cytat(sopel @ 2004-11-21 12:36:11)
Cytat(MoD @ 2004-10-30 15:24:33)
A jak nie wywalisz prośby o ponowne zalogowanie i ktoś dostanie jego IP to się zdziwi smile.gif

nie rozumiem, na jakiej zasadzie ktos mialby dostac jego IP?

Choćby z takiej że adres PI wróci do puli przydzielanych adresów...

powiem szczerze, ze w tym momencie sie zgubilem i nie wiem o co chodzi. w moim rozumieniu to jest tak, ze ktos wchodzi na stronie, dostaje id sesji, jako sprawdzacz pobieram jego ip jako jedna ze zeminnych sesji. potem ten ktos wywoluja kolejna strone i sprawdzam czy ip przypisane do id jest to samo co wysylajacego zadanie. jesli nie to wyskauje prosba o ponowne zalogowanie.

probelmem postawionym na poczatku byla kwestia dynamicznego ip i czy mozna wiec opierac sie na ip jako zabezpieczenia, skoro moze sie zmienic. wniosek byl taki, ze ip nie zmienia sie na tylo czesto, aby byl to bardzo powazny problem, uniemozliwiajacy zastosowanie ip do walidacji id sesji.

Ja powiem, że w niektórych przypadkach IP zmiena się nadzwyczaj często. Kieydś z qmplem na neostradzie ściagaliśmy Counter-Strike. Poszło za 3 próbą, bo zmianie IP towarzyszyło rozłączenie.


--------------------
Go to the top of the page
+Quote Post
sobstel
post 21.11.2004, 16:15:47
Post #15





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


ale czy jak ktos spedza na stronie np. godzine (w optymistycznym scenariuszu) i przypuscmy, ze 1 czy 2 tylko wyskoczy mu prosba ponownego zalogowania. tak, jest to niedogodnosc, ale jesli bezpieczentstwo odgrywa duza role?

Ten post edytował sopel 21.11.2004, 16:16:00


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
Krolik
post 7.12.2004, 11:43:23
Post #16





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

Ostrzeżenie: (0%)
-----


Niedogodnosc moze byc duza, bo niektorzy userzy maja IP, ktore sie zmienia co jedno zadanie HTTP (jesli sa za farma serwerow proxy, to nic nie poradza). Wiec trzymanie IP z sesja bedzie bez sensu - taki ktos po prostu opusci serwis, gdy co chwile bedzie musial sie logowac. Poza tym to nie jest zadna ochrona - jesli juz ktos jest w stanie podsluchac session_id to pewnie przejmie tez i haslo, wiec dostanie nowe, poprawne session_id.

Proponowalbym uzyc SSL - generalnie SSL zwieksza bezpieczenstwo, choc nie gwarantuje (man-in-the-middle attack jest niestety nadal mozliwy, ale jak sie ktos wepnie pozniej, to id sesji juz nie uzyska). Przechowywanie id sesji w ciastku czasem nie dziala, bo niektore przegladarki maja bledy. Np. konqueror ma jedna globalna pule ciastek - nawet tych jednorazowych, wiec gdy otworzysz 2 okienka, to beda obslugiwane w tej samej sesji. Nie wspomne juz, ze uzytkownik moze wylaczyc ciastka.

Moim zdaniem jedynym bezpiecznym i uniwersalnym mechanizmem obslugi sesji sa ukryte pola formularza + przepisywanie adresow + SSL. Id sesji nalezy oczywiscie uniewazniac po jakims czasie lub w momencie, gdy uzytownik sie wyloguje - to dosyc mocno chroni przred wykorzystaniem sesji przez "kolege". Jesli chodzi o bezpieczenstwo sesji po stronie serwera - tu bym generalnie odradzal php, ale zaraz mnie za to zlinczujecie....

Ten post edytował Krolik 7.12.2004, 11:45:26


--------------------
Projekty: PLAY, optymalizator baz danych
Go to the top of the page
+Quote Post
hawk
post 7.12.2004, 16:38:40
Post #17





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


Co do proxy, to podobno jest jakiś nagłówek X_FORWARDED_FOR cy cuś innego. Nigdy nie sprawdzałem i nie oznacza to że musi zawsze być.

Co do man-in-the-middle dla SSL, przypomina mi się artykuł o błędzie w MSIE umożliwiający taki atak. Chociaż AFAIK zawsze można dotrzeć do winnego przez certyfikat - jeżeli klient raczy sprawdzić certyfikat który wysłał mu man-in-the-middle.

Ja zawsze preferuję cookie, bo z przepisywaniem URLi są problemy. Raz że to zajmuje czas. Dwa że przy intensywnym JavaScripcie całość może przestać działać.

A co do bezpieczeństwo sesji, to o dziwo generalnie zgadzam się z Królikiem. Jest kiepsko. W php za bardzo poszli w stronę łopatologiczności - session_start, sesja się tworzy i nic więcej nie wiadomo. W J2EE można dowiedzieć się, kiedy stworzono sesję, czy jest stara czy nowa (bardzo ważne - session fixation) itd.

Chociaż, w php można napisać dobry session handler. To jest duży plus - całą obsługę sesji można wymienić, tak więc można z php zrobić system bardzo bezpieczny pod kątem sesji.
Go to the top of the page
+Quote Post
bela
post 7.12.2004, 18:35:13
Post #18


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


@hawk taki nagłówek istnieje i mi pokazuje moje wewnętrzne ip ( 192.168.*.* )


--------------------
Go to the top of the page
+Quote Post
Krolik
post 9.12.2004, 12:17:16
Post #19





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

Ostrzeżenie: (0%)
-----


Cytat
Co do man-in-the-middle dla SSL, przypomina mi się artykuł o błędzie w MSIE umożliwiający taki atak. Chociaż AFAIK zawsze można dotrzeć do winnego przez certyfikat - jeżeli klient raczy sprawdzić certyfikat który wysłał mu man-in-the-middle.


Tak jest w teorii. W praktyce jednak malo kto przejmuje sie ostrzezeniem SSLa o nieoczekiwanej zmianie certyfikatu lub o niemoznosci potwierdzenia certyfikatu. To drugie wystepuje bardzo czesto, bo wiele serwisow usywa "samopodpisanych" (jak to przetlumaczyc: self-signed?) certyfikatow.
A taki falszywy certyfikat nie musi zawierac zadnych prawdziwych danych, wiec dojsc do autora moze byc trudno. Predzej ustali sie atakujacego przez analize czynnosci, ktorych musial dokonac, zeby w ogole stac sie "man-in-the-middle" czyli np. jakis DNS-spoofing, wlam na router/gatway czy cos.

Niemniej przeprowadzenie takiego ataku jest duzo trudniejsze niz wykorzystanie glupiej dziury w Apache'u lub cudzym skrypcie php i wykradzenie session-id z niczym nie chronionego katalogu /tmp, gdzie php je trzyma (jesli uzywa sie domyslnej obslugi sesji).

Ten post edytował Krolik 9.12.2004, 12:17:46


--------------------
Projekty: PLAY, optymalizator baz danych
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 13:53