Bezpieczne autologowanie

Witam!

Chciałbym zrobić bezpieczne autologowanie w php. Szukałem na googlach i wszędzie się przewija to samo:

  1. Nie przechowywać hasła i loginu w ciasteczku.

  2. Połączyć login i hasło, zakodować md5 i do ciasteczka.

Tylko kompletnie nie rozumiem czemu 1. jest mniej bezpieczne niż 2. Przecież tak czy siak można podmienić ciasteczko, to czy będzie tam login i haslo md5, czy suma loginu i hasła w md5 to chyba nie ma znaczenia jeżeli ciasteczko się podmieni.

Mógłby ktoś to wytłumaczyć i ew. dać radę jak zrobić to autologowanie bezpiecznie?

Pozdrawiam.

Przecież każdy user ma inny login, oraz duże szanse na inne hasło. Oba kodujesz dodajesz sól i łączysz. Sól unikalna dla usera i jest dobrze. Jak chcesz podmienić ciastko jak dla każdego usera jest inne ? Co nie zmienia oczywiście faktu, iż ciastko ktoś sobie odkoduje i już ma hasło do konta. Dlatego się tego nie przechowuje w ciastku. Najlepiej unikalny hash + sól dla danego usera osobno. A całość zmieniać podczas każdego autologowania ;]

No, ale co to zmienia? Jeżeli autologowanie ma działać tak, że wchodzimy na stronę, jest sprawdzane ciasteczko i nas loguje, no to jeżeli podmienimy ciasteczko z

skrpyt to sobie odkoduje, sprawdzi, że login i hasło się zgadza i zaloguje.

Nie rozumiem gdzie tu różnica? Jedna sprawa to taka, że nie wyciągniemy loginu i hasła, ale i tak nas zaloguje.

Nie ma żadnego powiązania usera z danym hashem. Za każdym razem generujesz losowy kod + sól, zapisujesz w bazie i dajesz do ciastka. Szansa, że potencjalny włamywacz odgadnie co jest solą, a co jest prawidłowym kodem jest praktycznie zerowa. Przypominam, że zawsze podmieniasz kod+sól w bazie i podmieniasz ciastko podczas logowania. Mamy np 20znaków kodu +10soli kombinacji jest multum * ilość znaków jaką ma kod i sól. Pozostaje kwestia ilości userów, ale dodajmy do tego zakodowany inną solą nick i już mamy ogranicznik w czym mamy szukać.

Chyba, że ktoś userowi ukradnie ciastko, albo tępy user to ciastko udostępni. Zawsze najsłabszym ogniwem jest user.

No to o to mi się rozchodzi, że ciastko jak się wykradnie to się można zalogować.

A mi chodziło czy jest jakiś sposób, żeby było bezpieczniej, tzn. żeby ukradnięcie ciasteczka nie umożliwiło zalogowania. Pewnie zapis na ftp, ale to nie jest chyba zbyt ciekawy pomysł.

Możesz to robić na różny sposób, np zapisując przeglądarkę, ip etc. Oczywiście wszystko kodowane. Jednak weź pod uwagę, iż eliminujesz wtedy osoby ze zmiennym ip etc. Nie ma złotego środka.

No cóż, dzięki, o to mi chodziło :).

Witam podpinam się do tematu,ponieważ chcę zabezpieczyć hash solą,ale czy sól zapisywać w bazie.Utwożyłem dodatkowe pole w bazie salt i zapisuje sól.

$salt =rand(1,20); 																																																																																																																						

$hashed1 = md5($haslo1.$salt); 																																																																																																																

$hashed2 = md5($haslo2.$salt);																																																																																																																								

if($haslo1 != $haslo2) $wiadomosc .= "Hasła są różne
";

}

if(empty($wiadomosc))

{


$zapytanie1 = 'UPDATE `uzytkownicy` SET `haslo`= "'.$hashed2.'",`salt`= "'.$salt.'" WHERE `nick`="'.$login.'"';

$idzapytania1 = mysql_query($zapytanie1) or die(mysql_error()); }

,ale pytanie jak teraz odebrać z sesji ???.