![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam się nad bezpieczeństwem skryptów opartych o php-owskie sesje oraz bazę MySQL. Załóżmy, że przy logowaniu, wyszukuję w bazie czy istnieje user o podanym haśle i nicku. Jeśli istnieje to tworzę sesję. No i właśnie... Do sesji nie powinno się przypisywać żadnych haseł/nicków, ale czy można przypisać ID danego usera? Co jeśli przypiszę sesję tak:
gdzie $user_id to np. 1, czyli admin? Czy to jest 100% bezpieczne rozwiązanie? No bo jeśli w jakiś sposób dałoby się zmienić zawartość sesji i ktoś przypisze sobie do swojej sesji 1 to automatycznie jest na koncie admina i robi co chce. Pytanie czy tak się da? No i druga sprawa - dostęp do Panelu Admina (PA). Czy wystarczy, jeśli do PA będę wpuszczał osoby, które w bazie mają przypisane user_level (pole tinyint(1) default 0) == 1 ? Teoretycznie nikt sobie nie zmieni sam tej wartości bo musiałby mieć dostęp do bazy, a jesli już miałby dostęp do bazy to może wszystko, wiec czy taka alternatywa wytarczy, czy raczej trzeba dorzucić jakieś oddzielne logowania, cuda wianki? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 37 Dołączył: 18.12.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ja nie napisałem że nie jest łatwiej, tylko że jedno i drugie jest możliwe. Nie zgadzam się po prostu z podejściem że nie zezwolenie na przekazywanie identyfikatora sesji w url'u jest receptą na bezpieczeństwo. Do tego pewnie są tacy użytkownicy którzy ciasteczek z różnych powodów nie zaakceptują i czy oni powinni być ignorowani?. Goły mechanizm sesji w PHP nie jest zabezpieczony w żaden sposób przed session hijacking ( a z tego co mi się kojarzy nie był kiedyś nawet przed null-byte), więc zawsze trzeba mieć na uwadze że jak chcemy dbać o bezpieczeństwo uzytkowników to musimy zabezpieczyć sesje sami. A jeżeli np mam stronę gdzie nie daje się użytkownikowi możliwości wstawiania treści, to zaryzukję stwierdzenie że przy zabezpieczeniu polegającym na porównywaniu referera z ostatnio odwiedzoną stroną (przy krótkim czasie życia sesji), to będziemy już tak samo bezpieczni na ciastku i na url-u. Więc chyba jednak dużo zależy od specyfiki strony i stwierdzenie że session id nigdy nie może być przekazywane w url-u jest nieco wyolbrzymione.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 19:37 |