Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy taki system sesji jest bezpieczny?
Rochu
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 14
Dołączył: 25.09.2010

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


Witam, mam pyt odnośnie bezpieczeństwa mojego systemu sesji. Juz tlumacze na czym on polega. Uzytkownik loguje sie poprzez strone glowna w domena.pl - nast gdy dane sa poprawne do bazy serwera s1.domena.pl zostaje wpisany rekord w tabele session (ip usera, jego id uzytkownika w serwisie, dane przegladarki -> $_SERVER['HTTP_USER_AGENT'] - czas sesji). Nastepnie user zostaje przeniesiony na strone glowna s1.domena.pl, po czym plik index.php odpowiadajacy za cala strone pobiera rekord z tej tabeli session gdzie jest takie samo ip, taka sama przegladarka oraz gdzie czas jest > czasu aktualnego (wczesniej czas sesji zostal zapisany time() + 900 czyli na 15 min). Jezeli wszystko sie zgadza system pobiera dane o userze z tabeli users ( z pomoca id usera z tabeli session) i za kazdym odswiezeniem strony aktualizuje rekord sesji w session ustawiajac ponownie sesje wazna na 15 min (przez co mozna sprawdzic kiedy jest aktywny). I to chyba na tyle, prosilbym o jakies odpowiedzi czy jest to bezpieczne, a jesli nie jest to jakies male wytlumaczenie tongue.gif z gory dzieki

Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


W teorii odradza się trzymanie sesji na serwerach współdzielonych - ktoś może przechwycić twoje sesje. Ile w tym prawdy nie wiem - sam od dawna używam tylko cookie i bazy danych. Daje mi to większe pole manewru niż "zwykłe" sesje np. zamkniecie przeglądarki nie powoduje wylogowania no i z bezpieczeństwem też nigdy nie miałem problemów.


Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(CuteOne @ 24.05.2011, 16:59:42 ) *
W teorii odradza się trzymanie sesji na serwerach współdzielonych - ktoś może przechwycić twoje sesje. Ile w tym prawdy nie wiem

Był ten temat poruszany, choćby zmienić ścieżkę gdzie będą trzymane pliki sesji.
Cytat(CuteOne @ 24.05.2011, 16:59:42 ) *
Daje mi to większe pole manewru niż "zwykłe" sesje np. zamkniecie przeglądarki nie powoduje wylogowania

A od kiedy sesje z php przy zamknięciu się tracą, zakładając że cookie nie są usuwane?
Cytat(CuteOne @ 24.05.2011, 16:59:42 ) *
no i z bezpieczeństwem też nigdy nie miałem problemów.

Nie ma kodu, nie ma o czym dyskutować. Możesz się pochwalić jak zabezpieczyłeś. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Rid
post
Post #4





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Cytat
W teorii odradza się trzymanie sesji na serwerach współdzielonych - ktoś może przechwycić twoje sesje. Ile w tym prawdy nie wiem - sam od dawna używam tylko cookie i bazy danych. Daje mi to większe pole manewru niż "zwykłe" sesje np. zamkniecie przeglądarki nie powoduje wylogowania no i z bezpieczeństwem też nigdy nie miałem problemów.


Nie wiem ,ale czytałem gdzieś ,że popularne allegro zbudowane n php ,w taki sposób przechowuje sesje.


A pro po tematu , sesje można także trzymać w bazie danych ,trochę bezpieczniejsze niż tradycyjna metoda.

Ten post edytował Rid 25.05.2011, 00:06:47
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Cytat(Fifi209 @ 24.05.2011, 18:50:01 ) *
Był ten temat poruszany, choćby zmienić ścieżkę gdzie będą trzymane pliki sesji.

No i teraz wyobraź sobie początkującego programistę, który ustawi ścieżkę na folder główny strony i jej odpowiednio nie zabezpieczy smile.gif Co jest bardziej niż bardzo prawdopodobne

Cytat(Fifi209 @ 24.05.2011, 18:50:01 ) *
A od kiedy sesje z php przy zamknięciu się tracą, zakładając że cookie nie są usuwane?

Nie mówię o cookie tylko o "zwykłych" sesjach [dla jasności ;P session_start, session_close]. Nie wiem jak u Ciebie ale ja po restarcie przeglądarki muszę się logować na serwisy, które nie korzystają z cookie smile.gif

Cytat(Fifi209 @ 24.05.2011, 18:50:01 ) *
Nie ma kodu, nie ma o czym dyskutować. Możesz się pochwalić jak zabezpieczyłeś. ;]

Hehe to się szantaż emocjonalny nazywa smile.gif ogólnie to nic szczególnego.. zebranie wszystkich "rad i zaleceń" w jedno. No i jak dotąd nie miałem problemów z włamaniami itp.


Rid: tylko jest pewna różnica między zespołem pracującym w allegro a ludźmi odwiedzającymi to forum ;] zwie się doświadczenie

Cytat
A pro po tematu , sesje można także trzymać w bazie danych ,trochę bezpieczniejsze niż tradycyjna metoda.

Mylisz pojęcia.. pliki sesji nadal istnieją na serwerze nawet jeżeli ich "odpowiednik"(nie wiem jak to nazwać) trzymasz w bazie

Ten post edytował CuteOne 25.05.2011, 01:07:30
Go to the top of the page
+Quote Post
Rid
post
Post #6





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Nie wydaje mi się- po stronie serwera przechowywany jest tylko id sesji,wartość sesji natomiast przechowywana jest w bazie.
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


No a o czym ja mówię... hjacking
Go to the top of the page
+Quote Post
Rid
post
Post #8





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Myśli Pan ,że będzie możliwy Session Hijacking,jak się stronkę jak i połączenie z bazą MYSQL postawi na SSL?questionmark.gif
Myślę ,że normalna sesja jest bardziej narażona na ataki.
Go to the top of the page
+Quote Post
CuteOne
post
Post #9





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Hmmm jak by Ci to wytłumaczyć.. załóżmy, że logujesz się na jakiś serwis, który nie używa ciasteczek(serwer tworzy ID aktualnej sesji). Wchodzisz na podstronę np. Edytuj konto i podczas tego przejścia ID sesji z twojej przeglądarki zostaje przesłane z powrotem na serwer i tam porównane. W ten właśnie sposób serwer rozpoznaje kto jest kto. Teraz wyobraź sobie, że znalazłem folder z zapisanymi aktualnymi sesjami, więc podpinam się pod jedną z nich i spokojnie edytuję sobie np. Twoje hasło do konta smile.gif

I SSL nie ma tu co robić ponieważ nie przechwytuję request'a tylko biorę gotowca z serwera ;]
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Jeżeli włamywacz ma dostęp do serwera to żadne zabezpieczenia Ci nic nie dadzą. smile.gif

Co do zmiany ścieżki - fakt, jest to niezwykle trudne. ^^

Zacznijmy od tego - jeżeli kradniemy sesje, to nie z serwera a komputera użyszkodnika. Jeżeli wykradniemy ID sesji, to nie ma różnicy czy było w cookie czy w pasku adresu bo dostęp prawdopodobnie będziemy mieli (nie licząc sprawdzania ip, przeglądarki)

Poza tym, nie mieliśmy rozmawiać o wykradaniu sesji, lecz o zabezpieczeniach.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Rid
post
Post #11





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Cytat
I SSL nie ma tu co robić ponieważ nie przechwytuję request'a tylko biorę gotowca z serwera

Ja proponuję artykuł na ten temat:
http://niebezpiecznik.pl/post/firesheep-fi...ataki-na-sesje/
A jak ktoś ,nie jest pewny bezpieczeństwa SSL to może jeszcze skorzystać z IPSec-i myśle ,że raczej przechwycenie sesji
nie będzie możliwe.

Cytat
Poza tym, nie mieliśmy rozmawiać o wykradaniu sesji, lecz o zabezpieczeniach


A czym jest SSL?questionmark.gif?
Go to the top of the page
+Quote Post
nekomata
post
Post #12





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


@up ... chyba niedoczytałeś co ten firesheep robi .
Cytat
Firesheep to dodatek do Firefoksa, który w prosty sposób automatyzuje kradzież ciastek i podszywanie się pod przechwycone sesje — wystarczy podłączyć się do otwartego Wi-Fi (np. w jakiejś galerii handlowej)
Czyli to jest po prostu sniffer , to nie problem naszego skryptu bo ktoś może mieć cały batalion , a sprawdzanie IP w tym przypadku nie pomoże .. bo łączymy się przez to samo Wi-Fi . Ale sprawdzenie useragenta już może dać jakiś efekt co nie?
Go to the top of the page
+Quote Post
CuteOne
post
Post #13





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Rid: ja nie mówię o podsłuchach... tylko wykradnięciu sesji u źródła... dlatego SSL nie będzie miało znaczenia :|

nekomata: IP i useragent... hmmm w dobie zmiennego IP neostrady punkt 1 odpada. Jedynym rozsądnym wyjściem wydaje się sprawdzenie wersji przeglądarki..
Go to the top of the page
+Quote Post
nekomata
post
Post #14





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Zmienne IP eliminuje możliwość? Czy ja wiem ? Można dodać monit o powtórne podanie hasła w przypadku innego ip + tickbox "nie pytaj ponownie" , w ten sposób użytkownicy których nie obchodzi bezpieczeństwo mają spokój , a bezpieczni mają swoją rzecz.
Go to the top of the page
+Quote Post
Fifi209
post
Post #15





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(CuteOne @ 25.05.2011, 15:48:45 ) *
nekomata: IP i useragent... hmmm w dobie zmiennego IP neostrady punkt 1 odpada. Jedynym rozsądnym wyjściem wydaje się sprawdzenie wersji przeglądarki..

Co Ty pier... gadasz. Co ma zmienne ip do sesji? W czasie sesji ip się nie zmienia, chyba że zostaniemy rozłączeni ew. sami się rozłączymy i połączymy ponownie.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
nekomata
post
Post #16





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Może zsumujmy co robimy do zabezpieczenia sesji , według mnie to :
1.Blokujemy XSS (javascripty w postach itd ,podstawa ale warto wymienić)
2.Sprawdzanie User Agent'a : jeśli user agent inny niż w poprzedniej sesji -> niszczymy.
3.Sprawdzanie IP użytkownika : jeśli inne -> wyrzucamy monit i ponowne wpisanie hasła .
4.Zmieniamy folder zapisu sesji (własny session handler albo session_save_path )

To by chyba było na tyle?

@autor topic'u
Cytat
wczesniej czas sesji zostal zapisany time() + 900 czyli na 15 min
jeśli nie zmienisz domyślnego czasu sesji (10 minut) to może gdzieś się skrypt wywalić .

Ten post edytował nekomata 25.05.2011, 16:38:37
Go to the top of the page
+Quote Post
Rid
post
Post #17





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Ja bym jeszcze do wyżej wymienionego postu dodał:
ustawienie flag secure oraz httpOnlyCoockie na true dla sesji .Jak to zrobić:
http://php.net/manual/en/function.session-...okie-params.php

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 Aktualny czas: 19.08.2025 - 19:15