Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie za pomocą $_COOKIE
maly_pirat
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Witam, pisałem ostatnio formularz logowania do serwisu, bazowałem na "myśli", którą padła w php-fusion.
Po prawidłowym logowaniu ustawiam cookie dla użytkownika, które wygląda w postaci:
ID-USER.USER-HASH

User Hash generuje się automatycznie podczas rejestracji (md5(uniqid());).
Proces logowania wygląda na zasadzie:

Kod
- Jeśli masz ciastko (idziesz dalej):
-- Rozbijam ciastko na ID, oraz Hash
--- SQL sprawdzam czy istnieje taki użytkownik (z tym ID + hash)
---- Jeśli tak to jesteś zalogowany


Jednak po paru chwilach miałem mieszane uczucia co do tego rozwiązania, bo przecież jeśli ktoś wygranie z komputera
owe ciastko, to będzie miał dostęp do jego konta. Lub też będzie znał jego hash (oczywiście hash nigdzie nie jest wyświetlany, przetrzymywany jest w bazie) i też będzie miał dostęp.

Tak więc czy ten sposób jest niebezpieczny? w jaki sposób powinien weryfikować użytkowników przy rejestracji (poza sesja) chciałbym aby auto logowanie było ON.

Chciałbym dodać, że każdą wartość, $_COOKIE filtruje przez mysql_real_escape_string.

Ten post edytował maly_pirat 10.08.2009, 09:32:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Unik2psc
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 27.07.2009

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


Przykladowo Ci napisze bo teraz jestem w serwerowni.

Tabela user_session
id(opcjonalne - ale dla klucza auto_increment)
user_id
session_key
session_time

w session przy logowaniu ustawiasz user_id, session_key = key tworzy przy logowaniu wazne by bylo unikatowe. I sobie juz robisz przy sprawdzaniu czy ktos jest zalogowany czy jesli sessje jest mniejsza o 10minut niz aktualny czas (mktime()) to juz sessja jest nie wazna, gdy sessja jest wieksza to odswiezasz pole session_time (UPDATE MYSQL pola session_time).

Co do ciasteczek - wiesz jestem osoba ktora nigdy nic nie chce trzymac po stronie klienta (jakis taki nawyk) i probuje wychodzic na przekor wszystkiem i probowac. Wiec co do ciasteczek mozesz zrobic tak, dodac pole do user_session np o nazwie PERM_SESSION true|false (ttu nie musze pisac), a w ciasteczku dawac tylko klucz i user_id, przy sprawdzaniu zalogowania niecch z ciasteczek ciagnie te dane i porowna z tabela w bazie. Na szybko wiec przepraszam ze tak nie zrozumiale napisane pewnie.

A co postu nademna, za moich czasow to forum mnialo uczyc a nie pouczac. Wiem ze takie sprawy sa nudne i ze sa artykuly. Ale nie ma co sie zaslaniac albo nabijasz posty piszac len, albo piszesz z sensem odpowiedziec - albo nic nie piszesz. Troche niektorym sie juz pomieszalo z tym "masz google, masz artykul itp.".

Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 23:55