![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 23:55 |