[php + Mysql] weryfikacja hasla

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

[php + Mysql] weryfikacja hasla

Post autor: the_foe »

Mam pytanko co jest bezpieczniejsze, werysikowanie hasla na poziomie SQL:

Kod: Zaznacz cały

$ask=mysql_query("SELECT * tabela_1 WHERE login='$login' AND pass='$haslo'");
$numrows=mysql_num_rows($ask);
if ($numrows==1){
//ok
}else{
//niepoprawne logowanie
}
czy na poziomie php:

Kod: Zaznacz cały

$ask=mysql_query("SELECT * tabela_1 WHERE login='$login');
$rzad=mysql_fetch_array($ask);
$haslo_baza=$rzad['pass'];
if ($haslo==$haslo_baza){
//ok
}else{
//niepoprawne logowanie
}

tak wiec o preferujecie?
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: Wojciech Jurewicz »

Za wielkiej różnicy nie ma... (w tych rozwiązanich)

Ale ja jestem za MySQL. Podejżewam że jest to nawet wydajniejsze, a i dostac sie do bazy trudniej... 8) :wink:
Michał Fikus
Przelotem
Przelotem
Posty: 242
Rejestracja: sob cze 08, 2002 6:39 pm
Lokalizacja: Wejherowo

Re: [php + Mysql] weryfikacja hasla

Post autor: Michał Fikus »

Różnicy w bezpieczeństwie nie ma praktycznie żadnej.
Co do tego co preferuję to również sprawdzanie z poziomu sql, gdyż kod jest krótszy.
MaKaO
Nowy
Nowy
Posty: 37
Rejestracja: śr lis 06, 2002 1:42 am
Lokalizacja: Głogów Miasto Bogów
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: MaKaO »

Wszystko w miare OK, ale zdecydowanie dodaj jeszcze md5! :wink:
Michał Fikus
Przelotem
Przelotem
Posty: 242
Rejestracja: sob cze 08, 2002 6:39 pm
Lokalizacja: Wejherowo

Re: [php + Mysql] weryfikacja hasla

Post autor: Michał Fikus »

md5() napewno jest w wcześniejszym kodzie :) Choć jak już wszystko wrzucać do SQLa to wszystko :P
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: the_foe »

MaKaO pisze:Wszystko w miare OK, ale zdecydowanie dodaj jeszcze md5! :wink:
a co qurczak jest??? sprawdzilem w maualu, ale dalej nie kumam po co to jest. Prossze o wtlumacznie. Dzieki
MaKaO
Nowy
Nowy
Posty: 37
Rejestracja: śr lis 06, 2002 1:42 am
Lokalizacja: Głogów Miasto Bogów
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: MaKaO »

Masz tu kod PHP, skryptu do kodowania tekstu przez md5...
md5.php
--------------------------------
[php]<?
$form = "<p>Podaj wyraz do zakodowania</p>
<form method=post action=\"md5.php\">
<tr><td>Wyraz:</td>
<td><input type=text name=string size=15 maxlength=100></td></tr>
<tr><td colSpan=2 align=center>
<input type=submit value=Zakoduj><input type=reset value=Wyczyść></td></tr>
</table></form>";
$stringx = md5($string);
if(isset($string)){
print "Wyraz zakodowany to $string, a jego postać zakodowana wygląda następująco: $stringx";
} else {
print $form;
}
?>[/php]
Przeanalizuj to i napewno zrozumiesz co to md5... I dodam tylko, że md5 nie można odkodować :wink: A jeżeli zapytasz się to jak sprawdzić czy hasło jest poprawne... Bardzo prosto :wink: Masz w bazie zakodowane hasło i wystarczy, że zakodujesz to wpisane przez użytkownika, który chce się zalogować i porównasz... :wink:
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: the_foe »

MaKaO pisze:Przeanalizuj to i napewno zrozumiesz co to md5... I dodam tylko, że md5 nie można odkodować :wink: A jeżeli zapytasz się to jak sprawdzić czy hasło jest poprawne... Bardzo prosto :wink: Masz w bazie zakodowane hasło i wystarczy, że zakodujesz to wpisane przez użytkownika, który chce się zalogować i porównasz... :wink:
no rzeczywiscie sprytne, ale mowiac prawde nei rozumiem do zego to jest przydatne, skoro do skryptu i tak idzie haslo neiskodowane, czyli jak ktos kogos sniffuje to i tak widzi co wpisac. Do tego by ludzie majacy dostep do bazy nie odczytali hasla? ale po co, jak i tak do wszytkiego maja dostep (chyba ze wszytko bedziemy kodowac co sie da... ;).

Bardziej by sie chyba przydal skrypt w js, ktory przed wysalniem formularza koduje to do tej postaci i juz wysyla skodowane.

Sorki za moje pzremyslania, moze sie myle... prosze o wyjasnienie w jakich sytuacjach rauje to zycie.
MaKaO
Nowy
Nowy
Posty: 37
Rejestracja: śr lis 06, 2002 1:42 am
Lokalizacja: Głogów Miasto Bogów
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: MaKaO »

Chyba sie nie rozumiemy, chodzi o to, że ktoś kto niedaj Boże włamał by się do bazy mógłby sobie odczytać hasła i zalogować się potem w serwisie na kogoś innego i narobić dużo szkód... A tak nie ma raczej możliwości, aby coś takiego miało miejsce i głównie po to koduje się hasła za pomocą md5... :wink:
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: the_foe »

MaKaO pisze:Chyba sie nie rozumiemy, chodzi o to, że ktoś kto niedaj Boże włamał by się do bazy mógłby sobie odczytać hasła i zalogować się potem w serwisie na kogoś innego i narobić dużo szkód... A tak nie ma raczej możliwości, aby coś takiego miało miejsce i głównie po to koduje się hasła za pomocą md5... :wink:
no tak... masz racje...
Krzysztof Aszkiełowicz
Zaczyna działać
Zaczyna działać
Posty: 458
Rejestracja: pn maja 26, 2003 9:29 pm
Lokalizacja: Warszawa
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: Krzysztof Aszkiełowicz »

Ja używam obu sposobów do sprawdzenia poprawności. Hasło jest kryptowane niepodważalnym algorytmem Myśle że to wystarczy :P
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: Wojciech Jurewicz »

MaKaO pisze:I dodam tylko, że md5 nie można odkodować :wink:
No muszę ciebie rozczarować... ktoś już to zrobił... :-D

Pozwolę sobie zacytować treść z książki PHP4 Aplikacje:
Kryptolodzy VanOorshot i Wiener zaprojektowali teoretyczną maszynę przeszukującą dla algorytmu MD5 i obliczyli że w roku 1994, że takie użądzenie (o szacowanej wartości 10 mln USD) musiałoby pracować nieprzerwanie przez 24 dni nad rozwiązaniem komuniaktu zakodowanego tą metodą.
Co prawda jest to maszyna teoretyczna, ale informacje pochodzą z 1994 roku. Pytanie tylko czy to się opłaca... :-D Nie wiem nic więcej na ten temat i nie wiem czy to działa, fakt jest taki że coś z tej beczki jest... już jest... :-D
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: the_foe »

Krzysztof Aszkiełowicz pisze:Ja używam obu sposobów do sprawdzenia poprawności. Hasło jest kryptowane niepodważalnym algorytmem Myśle że to wystarczy :P
teoretycznie tak, ale powiedzmy ze goistek potrzebuje kodu. wlamuje sie do bazy. Powiedzmy ze haslo to "Motyl" reprezentuje go jakis kod. Niby nic mu to nie daje. Powiedzmy ze jest nim "t3nu2334". Juz jednak widze jak ktos robi program ktory przepuszcza caly slownik przez taki koder i w koncu trafi na nasz wynik i ma sie haslo!
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: [php + Mysql] weryfikacja hasla

Post autor: Wojciech Jurewicz »

the_foe pisze:teoretycznie tak, ale powiedzmy ze goistek potrzebuje kodu. wlamuje sie do bazy. Powiedzmy ze haslo to "Motyl" reprezentuje go jakis kod. Niby nic mu to nie daje. Powiedzmy ze jest nim "t3nu2334". Juz jednak widze jak ktos robi program ktory przepuszcza caly slownik przez taki koder i w koncu trafi na nasz wynik i ma sie haslo!
No a jak będzie miał hasło Motyl1... Słownik mu wtedy nic nie da... Tylko Brute Force... A to może mu zająć ... dużo czasu... :-D
Michał Fikus
Przelotem
Przelotem
Posty: 242
Rejestracja: sob cze 08, 2002 6:39 pm
Lokalizacja: Wejherowo

Re: [php + Mysql] weryfikacja hasla

Post autor: Michał Fikus »

Ale nie wszyscy użytkownicy o tym myślą i zdecydowanie łatwiej przychodzą im słowa standardowe. Dlatego o bezpieczeństwo powinien się starać webmaster. A może to zrobić np. poprzez dodanie do hasła usera swojego wlasnego kodu, np:

$ukryte_haslo="3hdd8";
$haslo="$ukryte_haslo"."$_POST['pass']";
ODPOWIEDZ