Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaloguj automatycznie - zagrożenie?
Forum PHP.pl > Forum > PHP
nemo_x
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]
adwol
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.
Seth
Dodatkow musisz wystrzegac sie aby uzytkownik nie mogl nigdzie wpisac zadnego skryptu JS. Przez niego mozna wyciagnac cookie i dostac sie do kont uzytkownikow.
nemo_x
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]
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.