Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Bezpieczeństwo sesji, coś poprawić?
chormi
post 22.03.2013, 23:50:29
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


Witam buduję swoją aplikację. Staram się utrudnić życie kombinatorom.

Pseudokod:

  1.  
  2. // ktoś wchodzi na strone.
  3.  
  4. stworzenie_sesji()
  5. {
  6. - generowanie keya sesji
  7. - zapis do bazy (userid=0, useragent, ip) // niezalogowany userid 0
  8. - zapis id rekordu z tabeli sesji do 'sid' w SESSION
  9. - zapis keya w SESSION
  10. }
  11.  
  12. jako niezalogowany
  13. {
  14. stworzenie_sesji();
  15. nakaz_zalogowania();
  16. }
  17.  
  18. logowanie()
  19. {
  20. - zmodyfikowanie keya sesji
  21. - zapis keya w SESSION
  22. }
  23.  
  24. jako zalogowany
  25. {
  26. pobranie danych z tabeli sesji - rekord o 'sid'
  27.  
  28. porównanie:
  29. - klucza zapisanego w sesji
  30. - adresu ip
  31. - useragent
  32. z rekordem w tabeli sesji
  33.  
  34. jeżeli któreś z powyższych się nie zgadza
  35. {
  36. niszczenie sesji
  37. usuwanie wpisu sesji z tabeli
  38. nakaz_zalogowania();
  39. }
  40. }
  41.  


W sesji php trzymam tylko:

'sid' czyli id rekordu z tabeli sesji
skey czyli unikalny identyfikator sesji taki sam zapisywany jest w rekordzie sesji

Sessionid trzymane i przekazywane tylko w ciastku.
Zmiana sessionid przez session_regenerate_id.

Rozmyślałem też nad trzymaniem ip,useragent i userid w sesji żeby rzadziej korzystać z tabeli sesji.

Coś poprawić? Jakieś sugestie?

Ten post edytował chormi 23.03.2013, 11:59:16
Go to the top of the page
+Quote Post
StrefaPi
post 22.03.2013, 23:56:26
Post #2





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


UserAgent nie jest żadnym zabezpieczeniem... Jak dla mnie zabiera tylko miejsce... ;)

Ten post edytował StrefaPi 22.03.2013, 23:58:27


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
chormi
post 22.03.2013, 23:59:17
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


Cytat(StrefaPi @ 22.03.2013, 23:56:26 ) *
UserAgent nie jest żadnym zabezpieczeniem... wink.gif


Wiem ale w połączeniu z porównywaniem ip i ciągu generowanego przy starcie sesji, zalogowaniu i porównywaniu go z ciągiem zapisanym w tabeli sesji już chyba lepiej? Mówcie co można ulepszyć w logice.
Go to the top of the page
+Quote Post
Damonsson
post 23.03.2013, 00:00:03
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Oczywiście, że jest.
Go to the top of the page
+Quote Post
StrefaPi
post 23.03.2013, 00:01:05
Post #5





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


Tylko po co?


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
Damonsson
post 23.03.2013, 00:07:54
Post #6





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Jest kolejnym elementem układanki, którą trzeba ułożyć w całość, żeby wygrać, a im więcej elementów tym trudniej/dłużej. Choć oczywiście jest to prowizoryczne, jednak jest.
Go to the top of the page
+Quote Post
StrefaPi
post 23.03.2013, 00:11:05
Post #7





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


Akurat to ten najłatwiejszy element, który moim zdaniem najwięcej zajmuje... EOT


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
chormi
post 23.03.2013, 10:24:47
Post #8





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


Załóżmy, że obaj userzy mają najnowszego ff i autoupdate. Wtedy rzeczywiśćie identyfikacja przez UA leży.

Nic się nie dowiedziałem.

Odświeżam.

// edit.

Jesteście zajebiście pomocni. Nic się nie dowiedziałem. Nie mam pojęcia po co w ogóle ten dział istnieje.

Ten post edytował chormi 23.03.2013, 12:23:31
Go to the top of the page
+Quote Post
!*!
post 23.03.2013, 12:30:03
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(chormi @ 23.03.2013, 10:24:47 ) *
Jesteście zajebiście pomocni. Nic się nie dowiedziałem. Nie mam pojęcia po co w ogóle ten dział istnieje.


Trudno, aby w mechanizmie sesji tworzyć coś nowego, jakbyś poświęcił 5 sekund na użycie wyszukiwarki, zobaczyłbyś "kilka" postów z tym związanych, w których, wypowiedzi użytkowników forum wyczerpały temat.
A w Twoim kodzie, nie zauważyłem "czasu".

Ten post edytował !*! 23.03.2013, 12:30:53


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Fifi209
post 23.03.2013, 12:55:37
Post #10





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

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


Cytat(chormi @ 23.03.2013, 11:24:47 ) *
Załóżmy, że obaj userzy mają najnowszego ff i autoupdate. Wtedy rzeczywiśćie identyfikacja przez UA leży.

Mogą mieć systemy inne, inne wersje samego systemu 32 i 64 bit a czasami też to jest pokazane.

Można też dodać:
$_SERVER['HTTP_ACCEPT_LANGUAGE']

etc.

Wystarczy wyprintować sobie $_SERVER na różnych przeglądarkach i zobaczyć co się zmienia.


--------------------
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
StrefaPi
post 23.03.2013, 13:21:51
Post #11





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


może jeszcze sprawdźmy jaką mają rozdzielczość ekranu... jak już pisano wyżej - to jest kolejne zabezpiecznie... tylko czasem po co to robić... ;)

btw. włączony autoupdate nic nie daje, to nie o to chodzi w tym... Safari w narzędziach dla Developerów ma możliwość w menu wpisania w User Agent czegokolwiek i będzie wszystko działało...


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
chormi
post 23.03.2013, 19:33:55
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (10%)
X----


Ok. co ile regenerować id sesji po określonej liczbie żądań czy co jakiś czas np. 3 min?
Go to the top of the page
+Quote Post
markonix
post 23.03.2013, 19:42:11
Post #13





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(StrefaPi @ 23.03.2013, 13:21:51 ) *
może jeszcze sprawdźmy jaką mają rozdzielczość ekranu...

Nie wiedziałem, że takie rzeczy da się wyczytać z poziomu PHP thumbsdownsmileyanim.gif


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 23.03.2013, 19:50:35
Post #14





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

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


Cytat(markonix @ 23.03.2013, 20:42:11 ) *
Nie wiedziałem, że takie rzeczy da się wyczytać z poziomu PHP thumbsdownsmileyanim.gif

Nie z poziomu php ale można tego użyć, odczytywać js, ajaxem przesyłać i już


--------------------
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
markonix
post 23.03.2013, 19:57:29
Post #15





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(Fifi209 @ 23.03.2013, 19:50:35 ) *
Nie z poziomu php ale można tego użyć, odczytywać js, ajaxem przesyłać i już

Wiem, jak i wiele innych zmiennych środowiskowych, ale sesja to PHP, a takie rzeczy to już jak dla mnie bardziej pod everocookie podchodzą.
Sesja powinna działać niezmiennie w różnych urządzeniach (brak javascriptu, wyłączony).


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 23.03.2013, 20:01:44
Post #16





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

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


No to albo masz dodatkowo rozdzielczość albo nie masz, jak nie masz to omijasz ten warunek. Kto normalny teraz wyłącza js?


--------------------
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
markonix
post 23.03.2013, 20:06:01
Post #17





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Ja i 2 miliony użytkowników firefox.

btw. i co? proponujesz w tablicy bazodanowej z sesją dodatkową kolumnę "resolution"?

Ten post edytował markonix 23.03.2013, 20:07:27


--------------------
Go to the top of the page
+Quote Post
StrefaPi
post 23.03.2013, 20:41:00
Post #18





Grupa: Zarejestrowani
Postów: 232
Pomógł: 50
Dołączył: 2.03.2013

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


ojej lol - o rozdzielczości napisałem to w ramach żartu na temat przesadności takich zabezpieczeń...
ogólnie jestem przeciwny nawet zapisywaniu UserAgent jako wyznacznika użytkownika... ;) co chyba jasno wynikało z tego tematu...

ps. "normalny" użytkownik internetu nie wyłącza js bo facebook nie działa wtedy... 2 milinoy użytkowników Firefoxa to mniej niż 0,5% wszystkich użytkowników Firefoxa (tylko Firefoxa)

Ten post edytował StrefaPi 23.03.2013, 20:47:30


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
!*!
post 24.03.2013, 10:49:16
Post #19





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(chormi @ 23.03.2013, 19:33:55 ) *
Ok. co ile regenerować id sesji po określonej liczbie żądań czy co jakiś czas np. 3 min?

I jedno i drugie. Choć sprawdzanie czy jest ok co 3 min może być kłopotliwe, w zależności od serwisu.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
pyro
post 24.03.2013, 11:02:38
Post #20





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(markonix @ 23.03.2013, 20:06:01 ) *


To że wtyczka ściągnięta i zainstalowana - nie znaczy że używana. Poza tym to jest chyba licznik ściągnięć, a jak każdy ściąga po kilka razy.... no to się robi malutki procent użytkowników rzeczywiście używających danej wtyczki smile.gif . Też mam NoScript, ale używam jej tylko do analizy podejrzanych aplikacji.

Nie wyobrażam sobie surfowania po internecie bez JS. To tak jakby wbić sobie gwóźdź w kolano i iść na spacer. Niby można, ale... smile.gif (zwłaszcza że JS / AJAX się bardzo teraz rozwija)


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.04.2024 - 06:52