![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 25.11.2008 Skąd: Polska Ostrzeżenie: (10%) ![]() ![]() |
Witam. Napisałem sobie skrypt logowania (Dane użytkowników z bazy) i chciałbym zapytać Was, czy jest bezpieczny. Nie będę wstawiał całego kodu wraz z formularzem bo nie ma sensu. A więc zrobiłem to tak: Po przesłaniu formularza sprawdzam, czy ktoś nie zapomniał o jakimś polu. Jeśli tak - skrypt zwraca błąd i nie ma kwestii logowania. Jeśli podano login i hasło, sprawdzam czy w bazie istnieje użytkownik o takim loginie, jeśli nie skrypt zwraca błąd, jeśli tak, sprawdzana jest zgodność hasła podanego z tym z bazie danych (hasła w md5). Jeśli wszystko się zgadza tworzę sesje:
Czyli sesja zawiera numer id zalogowanego usera. I teraz - na stronie sprawdzam czy istnieje sesja $_SESSION['logged'] następnie jeśi tak, to pobieram z bazy informacje o użytkowniku, biorąc z tabeli users rekord o id=$_SESSION['logged'] (Czyli wartość sesji, w moim przypadku numer usera), i potem operuje na tych danych, czyli uprawnienia, nick, email itd. I tutaj jest moje pytanie - czy zapisywanie do sesji numer usera i potem pobieranie z numeru tego usera danych z bazy jest bezpieczne? Bo wiem, że takie skrypty jak phpBB dają do sesji jakiś hash. Pozdrawiam, ladovnik |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
bardzo...
samo md5 ? daj jakiś algorytm np rot-13 (najlepiej sam coś wymyśl) jeśli jest sesja to pobierasz dane.. a jeśli jest przechwycona sesja? może jakieś sprawdzanie ip i user_agent ? $_SESSION['logged']=$row['user_id'] <- po co to ? masz sid : session_id() zapisuj je w bazie i po sid odczytuj usera . a czy skrypt logowania dobry to nie wiem , może podatny na sql injection ? nie pokazałeś go. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 2 Dołączył: 8.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przechwycenie sesji, dowolna modyfikacja id usera i mam dostęp do jaiegokolwiek konta.
Zapisanie adresu ip, dodatkowe ciasteczko, autentykacja przy każdym wywołaniu obiektu, dopisanie aktualnego czasu (sekundy) przeprowadzania autentykacji do zakodowanego hasła, serializacja i ponowne kodowanie md5 po czym sprawdzanie w momencie wykonania skryptu. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 25.11.2008 Skąd: Polska Ostrzeżenie: (10%) ![]() ![]() |
Nie wpadłem na to, aby generowany hash zapisywać do bazy w rekordzie danego użytkownika wraz z IP i potem to sprawdzać. Dzięki!
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 03:17 |