Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem z bazą
Forum PHP.pl > Forum > PHP
robal94
Witam! mam bazę o chaśle xxx biggrin.gif i z tabelą logowanie która ma 3 kolumny: id login i haslo. chce sprawdzić czy login wpisany przez urzytkownika jest równy haslu z bazy. Robię to tak:
  1. mysql_connect('localhost', 'yyy', 'xxx');
  2. mysql_select_db('epamiec_portal');
  3. $zapytanie = mysql_query("SELECT haslo FROM logowanie WHERE login='$login'");
  4. while($row = mysql_fetch_array($zapytanie))
  5. {
  6. if($row['haslo'] == $haslo){
  7. $a++;
  8. }
  9. }


I niestety nic mi nie wychodzi... dlaczego?
vokiel
  1. $zapytanie = mysql_query("SELECT `id` FROM `logowanie` WHERE `login`='".$login."' AND `haslo`='".$haslo."';");

Teraz jeśli zwróci Ci id, to znaczy, że jest taki login z takim hasłem, jeśli nie to znaczy, że nie ma.

Druga sprawa. Hasła przechowuj zahashowane (SHA-1, MD5), a nie otwartym tekstem.
Pobieranie hasła w celu sprawdzenia czy jest takie samo jak te wpisane, jest bardzo dużym zagrożeniem bezpieczeństwa skryptu.
robal94
ale to jest skrypt połączony z ajaxem i chyba nie będze aż tak narażony, ale moze sie myle:)
vokiel
Jeśli jest przesyłany ajaxem to tym bardziej jest zagrożony. Sprawdzanie logowanie odbywa się gdy użytkownik nie jest zalogowany, zatem wystarczy, że atakujący wywoła zapytanie ajaxowe z podanym czyimś loginem i odbierze jego hasło (oczywiście musiałby zrobić mały włam typu SQLInjection, czy w inny sposób wykoleić stronę).
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.