Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Ciasteczka, Sesje i prawa dostępu
Otto
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 7
Dołączył: 22.03.2010

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
yevaud
post
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


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 ?
Go to the top of the page
+Quote Post
Otto
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 7
Dołączył: 22.03.2010

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


Sesja wygasa po zamknięciu przeglądarki?
Go to the top of the page
+Quote Post
kadlub
post
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


http://www.webdeveloper.pl/obsluga_sesji_w...,18,1,1,pl.html
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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 (IMG:style_emoticons/default/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. }
Go to the top of the page
+Quote Post
sadistic_son
post
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:45