Problem z usunięciem cookies.

0

Witam,

Do swojego skryptu logowania chcę dodać, opcję "zapamiętaj mnie" przez cookies :) Wszystko było by ładnie :) Tylko w momencie wylogowania się nie mogę zabić ciasteczek.

 unset($_COOKIE);

nie działa :/ setcookie("name", null, 0);

  też nie działa <code class="php">  setcookie(session_name(), '', time()-42000, '/');

też nie działa. Moje ciastki wyglądają tak: setcookie('login', $_SESSION['login'], time()+3600,'/');
setcookie('haslo', $_SESSION['password'], time()+3600,'/');

Jaka może być przyczyna ? Jaki błąd robię?
0

Zastanów się, cholera. Jeśli chcesz coś zmienić w ciasteczku login to nie ustawiasz ciasteczka name albo ziemniak tylko... no?
Samo przechowywanie hasła w ciastkach to dokumentna durnota.

0

ok, w sumie już działa skrypt. Dlaczego hasło zapamiętane w cookies to durnota ?? Chciałem po prostu dodać opcję do logowania "zapamiętaj mnie". Można czegoś innego użyć niż cookies ? Nie rozumiem o co chodzi w tym momencie. Przecież tu na forum też jest taka opcja i jak ona jest wykonana? W czym jest problem ? Ataki XSS? Hasło zawsze można też zaszyfrować.

0

Nie ma sensu używać wcale hasła. Pisałem o tym ostatnio przynajmniej parę razy...
W momencie kiedy user odhacza sobie autologowanie po prostu wygeneruj jakiś bezpieczny losowy ciąg (np. GUID) i wrzuć go do bazy danych razem z adnotacją o dacie wygenerowania i ew. innymi informacjami. Wtedy nadajesz ciastko i ustawiasz mu wartość taką, jak Twój wygenerowany ciąg. Dzięki temu w ciasteczku nie przechowujesz żadnych nadmiarowych informacji o użytkowniku lub składników jego podstawowego logowania. Dodatkowo możesz faktycznie kontrolować na poziomie serwera po jakim czasie wygaśnie autologowanie i spontanicznie kasować istniejące tokeny autologowania użytkowników (wtedy serwer uzna ciastko za niepoprawne i je oleje, bo nie ma takiego kodu w bazie lub taki kod jest, lecz już się przeterminował).

0

Może trochę kodu? Albo chociaż linki to tych postów w których już to pisałeś ?

1

Czego nie zrozumiałeś? Przestań bezmyślnie przeklejać kod i zacznij myśleć.

0

Ok, masz rację. Zrobiłem tak, do bazy danych dokleiłem kolejną tabelę(id, GUID, data, login), do ciasteczek zapisałem tylko jedną zmienną losową rand +time(). W momencie kiedy user wciska zapamiętaj mnie, zapisuję w bazie GUID + datę, kiedy wcisnął zapamiętaj mnie. W momencie, kiedy user wyloguje się, usuwam z bazy danych wiersz z jego GUID oraz ciasteczka. Działa ok :) Pytanie tylko czy takie rozwiązanie jest już bezpieczne ? Czy czegoś nie pominąłem ? :)

aaa własnie zastanawiałem się czy te GUID i datę dokleić już do istniejącej tabeli uzytkownicy czy dać nowa. W zasadzie dałem nową, ale można też dać i do tej istniejącej, po prostu by robiło się update, a w momencie wylogowania damy wartości null.

rozpędziłem się, kolejna rzecz. jeśli na komputerze user'a istnieją ciasteczka to sprawdzam tylko czy one zgadzają się z GUID w bazie danych i zalogowuję od razu odpowiedniego user'a? Czy takie rozwiązanie jest dobre ?

0

aaa własnie zastanawiałem się czy te GUID i datę dokleić już do istniejącej tabeli uzytkownicy czy dać nowa. W zasadzie dałem nową, ale można też dać i do tej istniejącej, po prostu by robiło się update, a w momencie wylogowania damy wartości null.

Mając to w tabeli z danymi użytkownika pomijasz możliwość jednoczesnego auto-logowania na wielu komputerach. Chyba, że po zalogowaniu na drugim jeżeli Twoje GUID istnieje to zwracasz takie samo. Ale wtedy wylogowanie z jednego komputera wyloguje też z drugiego.
Więc zostaw z osobną tabelą.

0

ok, kumam. a co jeśli chodzi o samo sprawdzanie tego GUID? Czy takie generowanie psełdolosowej zmiennej i późniejsze je dodanie do ciasteczek + zapisaniu w bazie jest ok? aa i samo sprawdzanie cookie=GUID z bazy to user zalogowany

0

nie wiem jeszcze czemu, ale czuję, że takie rozwiązanie jest źłe :/ a jak ktoś skopiuję mi cookies i przeniesie na inny komp?

A czym to się różni od przeniesienia ciasteczek z zapisanymi w nich loginem i hasłem? Oprócz tego, że używając roziązania z GUID nie znamy docelowego loginu i hasła (czyli jest bezpieczniejsze w jakimśtam sensie) - niczym.

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