Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bezpieczeństwo mojego skryptu logowania
Forum PHP.pl > Forum > PHP
ladovnik
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:
  1. <?php
  2. $_SESSION['logged']=$row['user_id']
  3. ?>

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
Spawnm
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.
youngCoder
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.
ladovnik
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!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.