Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ciasteczka, Sesje i prawa dostępu
Forum PHP.pl > Forum > Przedszkole
Otto
Witam mam takie pytanie... Robię panel logowania, podczas którego pobierane są prawa użytkownika i przypisywane w zależności od wyboru "zapamiętaj mnie" do sesji lub ciasteczek... Gdy jestem już zalogowany prawa mam przypisane do zmiennej $user['rights'] która ma wartość taką jak $_COOKIE['rights'] lub $_SESSION['rights']... Podczas przechodzenia do panelu administratora sprawdzam prawa za pomocą takiego kawałka kodu

  1. if (eregi("ADMIN", $user['rights'])) {
  2. echo "Dostęp przyznany";
  3. } else {
  4. echo "Dostęp zabroniony";
  5. }


I moje pytanie czy takie coś jest bezpieczne? Czy da się nadpisać jakoś ciasteczka lub sesje?
yevaud
ciasteczko kazdy moze Ci wyslac jakie chce
sesja generalnie opiera sie na specjalnym identyfikatorze ktory jest trzymany w COOKIE, albo przesylany w GET - osoba kradnaca musi znac dodatkowo ten prawidlowy identyfikator sesji

najlepiej poczytaj wiecej i o jednym i o drugim

a dlaczego trzymasz w sesji lub ciasteczku, a nie po prostu w sesji ?
Otto
Sesja wygasa po zamknięciu przeglądarki?
CuteOne
O zabezpieczeniach była już masa tematów - poszukaj na forum. Sam używam tylko ciach lub tylko sessji - nigdy nie mieszam obydwu bo czasami wychodzą takie ^&*&*, że głowa mała wink.gif

Podczas logowania nadaj użytkownikowi jego unikalny identyfikator - np.
  1. $time = time();
  2. $user_id = $row['user_id']; // id użytkownika pobrane z bazy
  3. $salt = 'fefefrefe'; // do czego służy sól dowiesz się na google -> "solenie hasła"
  4. $hash = md5($user_id.'-'.$time.'-'.$salt); // to co zostanie z hashowane dobierz sobie sam ;)
  5.  
  6. //... jeżeli wykonano poprawne logowanie
  7. {
  8. setcookie('uid', $user_id, $time + 3600);
  9. setcookie('time', $time, $time + 3600);
  10. setcookie('dbid', $hash, $time + 3600);
  11.  
  12. mysql_query("UPDATE users SET login_time = '{$time}', hash = '{$hash}'");
  13. }
sadistic_son
No i zamiast używać eregi, które według manuala:
Cytat
Ta funkcja jest PRZESTARZAŁA od PHP 5.3.0. Używanie tej funkcji nie jest zalecane.
używaj lepiej preg_match, strstr lub strpos.
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.