[PHP] mechanizm automatyczego logowania

0

w jaki sposob zrealizowac automatyczne logowanie?
cookie, to oczywiste, ale co nich zapisywac? md5hash z hasla? czy moze jakis wylosowany ciag znakow, ktory bedzie identyfkatorem zastepujacym md5hash z hasla? wtedy tak naprawde uzytkownik bedzie wykorzystywal haslo tylko przy logowaniu recznym...
wiem, ze niby md5 jest bezpieczne, ale niektorzy uzywaja standardowych hasel i w takich przypadkach to juz nie jest takie bezpieczne.

i jeszcze taka sprawa: czy ogolnie polecacie wykorzystywac serialize()? czy nie jest lepiej, jezeli ciasteczka sa normalnie poukladane i uzytkownik moze usuwac, to co chce bez utraty innych informacji?

0

Ja zapisuję login i hash (albo sam hash hasła albo hash hasła i loginu) i jeżeli jest to poprawne, to loguję przepisując dane (z bazy) do sesji i co najwyżej odnawiam ciastko. W postaci szyfrowanej serializowanej tablicy wszystko jest zapisywane.

Możesz też zrobić tak, jak zamierzałem zrobić w innym serwisie - zapisywać hash hasła, loginu i "salt"-a (soli?), ale soli nie zapisywać w ciastku, a tylko w bazie trzymać. I porównywać na podstawie mieszanych danych z ciastka i bazy.

Serializacja jest bardzo fajna dla programisty, a użytkownik... po cóż miałby grzebać w ciasteczkach?

0

zeby nie tworzyc kolejnych tematow...

jak najlepiej rozwiazac autoryzacje uzytkownika?
za kazdym odswiezeniem strony sprawdzac, czy dany uzytkownik istnieje, czy po prostu raz sobie sprawdzic i przez cala sesje jechac na tym?
pierwsze rozwiazanie obciaza baze dodatkowym, przynajmniej jednym zaptaniem na kazde odswiezenie. jednak daje mi pewnosc, ze jezeli zmienie uprawnienia uzytkownika (np naoz na niego bana), to zmiany odazu sie zastosuja.
w drugim przypadku jest gorzej, bo zmiany beda zastosowane przy nowej sesji.

moze jest jeszcze jakies rozwiazanie, ktorego ja nie widze?

bo zakladam, ze nie mozna miec dostepu z pozimu skryptu do wszystkich odpalonych sesji - chyba to raczej byloby zbyt niebezpieczne zagranie.

0

co do automatycznego logowania to ja akurat trzymam hash hasła i login ale hash inny niż ten w bazie ale tylko dla większego bezpieczeństwa (tj. gdyby ktoś cudem poznał sam hash z bazy dalej by się nie mógł zalogować)
za to dane też sprawdzam przy każdym odświeżeniu - to jedno zapytanie więcej, ale mam aktualne dane (i nie muszę wpisywać dużych ilości danych do sesji które od strony serwera są zwykłymi plikami tekstowymi na których operowanie jest zwykle dłuższe niż odczyt z lokalnej bazy danych) i większe bezpieczeństwo dla systemu (gdyby ktoś zdołał jakimś cudem wpisać dane do sesji to dalej by niczego nie uzyskał) oraz dla użytkownika (znam sytuację w której ktoś poznał hasło, włamał się na konto a prawowity właściciel się o tym dowiedział i szybko je zmienił - gdyby w tej sytuacji skrypt dalej polegał na danych z sesji to włamywacz dalej mógłby myszkować po koncie)

1 użytkowników online, w tym zalogowanych: 0, gości: 1