Michal2451
17.08.2012, 23:41:44
Cześć!
Tworzę sobie stronę z logowaniem.
I lepiej to logowanie zrobić na sesjach czy na ciasteczkach? I czy w ogóle na tym drugim jest możliwość zrobienia czegoś takiego.
Chociaż na kursie php jest napisane:
Cytat
Metodą nie tyle przekazywania parametrów, co przechowywania niewielkich ilości danych na komputerze oglądającego stronę (np. informacje o imieniu i nazwisku lub nazwie użytkownika w tym serwisie) jest mechanizm cookies (ciasteczka). Ciasteczka ustawione przez dany serwis dostępne są tylko dla niego i ustawiane są na jakiś czas
więc myślę, że możliwość jest.
Pozdrawiam!
d3ut3r
18.08.2012, 02:30:38
Ciasteczkami zbyt łatwo manipulować. Do logowania sesja nadaje się idealnie.
Szymciosek
18.08.2012, 08:13:32
Z ciasteczkami mozna rozwiazac problem typu zapamietaj logowanie, wiec wykorzystalbym i sesje i cookies, ale dodajac zakodowane np id+losowo generowany hash
ciekawskiii
18.08.2012, 10:03:59
tylko sesja+cookie, sama sesja to bezsens chyba, ze chcesz wnerwic ludzi ktorzy co chwile beda musieli sie logowac.
w cookie zamiast loginu i hasla a przynajmniej zamiast hasla trzymac jakis zahashowany kod
wNogachSpisz
18.08.2012, 11:13:22
Jest jeszcze jeden sposób, którego używam w kilku mniej krytycznych projektach:
Zasada działania jest następująca:
W cookie trzymasz pary "klucz" : "wartość", np:
login: admin
expire: timestamp
permissions: [insert, update, delete],
I dokładasz ostatnią parę:
checksum: checksum-hash
Checksum czyli suma kontrolna zwiera sumę kontrolną z całej zawartości cookie wcześniej posolonej.
Zmieniając sól powiedzmy raz dziennie, praktycznie nie ma szans żeby to złamać. Każda próba ręcznej zmiany zawartości cookie spowoduje błąd. Takie rozwiązanie będzie miało bardzo dużą wydajność, bo nie musisz odczytywać sesji przy każdym wywołaniu z plików tymczasowych czy bazy danych. Użytkownik dostarcza informacje o sobie samym wewnątrz nagłówka cookie przy każdym połączeniu
Michal2451
18.08.2012, 12:56:29
A może nakieruje mnie ktoś jak to zrobić? Mam na myśli sesje + ciasteczka, żeby nie trzeba było się logować co chwile.
pamil
18.08.2012, 13:48:08
Ciasteczka służą po to by przechowywać ID sesji, z odpowiednim czasem są ciasteczkami sesyjnymi (usuwane po wyłaczeniu przeglądarki/karty przeglądarki). Wszelkie sesje to po prostu kojarzenie użytkownika z zapisanymi danymi na podstawie losowego klucza, czyli ID sesji - proste.
Michal2451
18.08.2012, 14:35:49
W takim razie jak przykładowo zrobić opcję "Zawsze zalogowany" lub żeby wylogowywało po ustalonym czasie?
pamil
18.08.2012, 18:06:19
Cookie z losowym toknem przechowywanym również w bazie (nic na podstawie loginu/hasla, zwykly mt_rand()), ustawione na odpowiedni czas. Jeśli użytkownik wchodzi z tokenem, szukasz w bazie takowego i jeśli istnieje, automatycznie go logujesz.
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.