Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Poradniki - system logowania na ciasteczkach
Forum PHP.pl > Forum > Przedszkole
Watt
Witam!

Przekopuję się przez Googla, przez miliony poradników na temat tworzenia 'bezpiecznego' skryptu logowania no i niestey dochodze do wniosku, że duża ich ilość jet pisana przez osoby takie jak ja - nie mające pojęcia o sensownym programowaniu w php. Ja ne mam zbytnio pojęcia, który z nich mi pomoże - byłbym bardzo zobowiązany, jakby ktoś podał mi jakiś sensowny poradnik opisujący jak zrobić sensowny i bezpieczny(!) system logowania na cookies. Zależmy mi na tym, żeby zabezpieczyć się przed możliwie jak największą ilościa "ataków". Może macie jakieś swoje typy z których kiedyś sie uczyliście?

Pozdrawiam i dziękuję smile.gif
modern-web
Cookies nigdy nie będą gwarantowały bezpieczeństwa ze względu na miejsce ich przechowywania. Na dodatek ostatnio pojawiły się pewne wymogi co do uświadamiania odwiedzających o zbieraniu danych i wykorzystywaniu ciasteczek. Także na dzień dzisiejszy do takich zastosowań jak system autoryzacji poleciłbym sesje, natomiast ich mechanizm musisz dogłębnie przekopać i niestety usprawnić o kilka mechanizmów.
Adrian1207
Moim zdaniem nic nie da nawet cudowny system logowania, jeśli cała reszta serwisu będzie miała słaby kod. W gruncie rzeczy bezpieczeństwo skryptu logowania można poprawiać w nieskończoność, od tych skrypcików z poradników, przez porządne klasy frameworków, po jakieś nieznane mi techniki stosowane przez największe serwisy internetowe i banki.

Nie szukałbym gotowego rozwiązania, ani instrukcji tworzenia systemu logowania. Raczej po prostu dobrej książki o OOP w PHP, a dalej to już z górki.

Jednak jeżeli szukasz po prostu jakiegoś wymyślonego już rozwiązania opartego o COOKIE, to ten twór wygląda całkiem spoko: http://paweldanielewski.pl/darmowe-rozwiaz...ia-w-php-mysql/ - choć co prawda się nie zagłębiałem, ale na pierwszy rzut oka widać niezłe kodowania, tworzenie swoich access kodów... wydaje sie ok. smile.gif To strukturalne rozwiązanie, ale jakiegoś logowania na cookie w oop raczej nie znajdziesz, bo to już każdy robi pod siebie i w większości na sesjach.

Generalnie... zależy do czego potrzebujesz. smile.gif
Watt
Problemem w sesjach jest to, że po wyłączeniu przeglądarki user musi logować się od nowa (?). Nigdy w życiu nie pisałem systemu logowania (całe życie modyfikowałem cmsy, gdzie to było już 'zrobione'), dlatego uznałem że ciacha będą lepsze. Chyba, że isnieje metoda na przchowanie sesji na np pare dni?
modern-web
To prawda - sesja ma swój identyfikator, po zamknięciu przeglądarki id po prostu się zmienia, natomiast istnieje taka możliwość - COOKIES, natomiast nie do samej weryfikacji, a do poinformowania serwera, że logowałeś się np. wczoraj. Rolą sesji jest w tym momencie przechowywanie danych o tym, kiedy dany użytkownik ostatnio się logował, a ciastko tylko i wyłącznie informuje system, że może skorzystać z poprzednio wprowadzonych danych. W gruncie rzeczy jest to pewnego typu furtka do ominięcia systemu weryfikacji, lecz w tym przypadku musisz generować jakieś tokeny tak by nie szło spreparować ciasteczka i by obie strony (klient + serwer) posiadały taki token u siebie + odpowiednie dane weryfikujące delikwenta. W zasadzie problem możesz rozwiązać po swojemu bo to studnia bez dna ale pamiętaj by nie trzymać ani w sesjach ani w ciasteczkach danych użytkownika oraz by odpowiednio zabezpieczyć komunikację między stronami.
Watt
No właśnie obecnie napisałem coś takiego
Kod
                            $_SESSION['TOA_LOGIN'] = $nick;
                            $_SESSION['TOA_NUMER'] = $row['id'];
                            $_SESSION['TOA_TIME'] = time();
                            $_SESSION['TOA_IP'] = $ip;

Rozumiem, że to jest samobójstwo? Czy przykładowo coś takego: http://www.go4expert.com/forums/showthread.php?t=361 jest dobrym pomysłem?
modern-web
Dane, które wklepujesz do sesji są ok - login, identyfikator, czas i ip, natomiast w podanym przez Ciebie linku autor dodaje do sesji także hashowane hasło. Jest to zły nawyk, bo sesję można wykraść, a hasło odhashować jeśli jest to jakieś wyrażenie prosto ze słownika. Nie widzę również, by użyta została funkcja session_regenerate_id, a moim zdaniem powinna. Dodatkowo w grę powinno wejść przeniesienie plików tymczasowych (sesji) do odrębnego, z góry nadanego dla aplikacji katalogu niedostępnego dla użytkownika (to tak nawiasem dodając odnośnie bezpieczeństwa sesji) - patrz session_save_path, bo zdarza się również wykradanie sesji przez użytkowników innych kont znajdujących się na tym samym serwerze.
adibak20
Kiedyś używałem do Logowania i Ciasteczek i sesji na raz, owszem jak zamkniesz przeglądarkę to sesja wygaśnie....
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.