![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Znowu mam pytanie dotyczące kwesti bezpieczeństwa. Pisze skrypt logownia, chce udostepnić możliwość automatycznego logowania przy każdej wizycie. Oczywiście do tego użyłbym cookies. Jaką wartość zapisać w cookies, żeby nie było możliwości zalogowanie się jako ktoś inny. Czy zapisywanie w cookies session_id a następnie porównywanie go z wartością w bazie danych jest dobrym pomysłem?
[php:1:2ef5e89667]<?php $sid = $_COOKIE['sid']; // łączenie z bazą $zapytanie = "select session_id from users where session_id = md5('$sid')"; $wykonaj = mysql_query($zapytanie) or die("Błąd zapytania"); if(mysql_num_rows($wykonaj) == 1) echo "Zalogowano"; else echo "Błąd"; ?>[/php:1:2ef5e89667] |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Znowu mam pytanie dotyczące kwesti bezpieczeństwa. Pisze skrypt logownia, chce udostepnić możliwość automatycznego logowania przy każdej wizycie. Oczywiście do tego użyłbym cookies. Jaką wartość zapisać w cookies, żeby nie było możliwości zalogowanie się jako ktoś inny. Czy zapisywanie w cookies session_id a następnie porównywanie go z wartością w bazie danych jest dobrym pomysłem?
Cookie jako mechanizm w tym przypadku jest tak samo dobrym pomysłem jak wykorzystanie go do zwykłych sesji. Jeśli wygenerujesz odpowiednio długi i losowy ciąg (np. wynik funkcji md5 z jakiegoś innego losowego ciągu) i wyślesz go jako cookie do użytkownika to szansa na zgadnięcie go przez kogoś zupełnie obcego będzie bardzo mała (pomijając sniffing http). Problem jest wtedy gdy ktoś inny korzysta z tego samego użytkownika na tym samym komputerze. Wtedy będzie mógł bez hasła zalogować się do Twojego serwisu. Dlatego myślę, że automatyczne logowanie powinno być zawsze jako opcja (nie domyślnie) i użytkownik powinien być poinformowany z czym to się to wiąże. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Dodatkow musisz wystrzegac sie aby uzytkownik nie mogl nigdzie wpisac zadnego skryptu JS. Przez niego mozna wyciagnac cookie i dostac sie do kont uzytkownikow.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Czyli gdybym generował ciacho w taki sposób jak w kodzie poniżej to by było w miare bezpieczne. Oczywiście wszystki zmienne predefinjowane zostaną potraktowane strip_tags(), żeby zabezpiczyć się przed kradzierzą cookiesów.
[php:1:1d76d759f7]<?php srand((double)microtime()*1000000); $sid = md5(uniqid(rand())); setcookie("sid", $sid, "3600"); ?>[/php:1:1d76d759f7] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 14:21 |