Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Logowanie, Czy ten kod jest bezpieczny?
Johnas
post
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Witam. Czy ten kod jest bezpieczny? Jak nie to jak można go zaatakować i jak zabezpieczyć sie przed tym?

  1. if ($_POST['login']) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  2.  
  3.  
  4. $tabela = 'users'; // zdefiniowanie tabeli MySQL
  5.  
  6. $login = mb_strtolower($_POST["login"]);
  7. $haslo = $_POST["pass"];
  8.  
  9. $haslo = sha1($haslo); // szyfrowanie podanego hasła
  10.  
  11.  
  12. // jeżeli wszystko jest dobrze, użytkownik się loguje
  13. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  14. login='$login' and password='$haslo'");
  15.  
  16. if (mysql_num_rows($wynik) == 1) {
  17. $informacja = mysql_fetch_array($wynik);
  18. $_SESSION["login"] = $informacja["login"];
  19. $_SESSION["id"] = $informacja["id"];
  20.  
  21.  
  22. header('Location: index.php');
  23. } else {
  24. echo '<div style="position:relative; width: 200px; top:80px; left:100px;"><font color="red">Nie poprawny login lub hasło!</font></div>';
  25. }
  26.  
  27. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Nie nie jest bezpieczny pozwala na sql injection
nie
  1. if ($_POST['login'])

a
  1. if (isset($_POST['login'],$_POST["pass"]))


W zapytaniu dodaj limit w końcu oczekujesz jednego wyniku:
  1. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  2. login='$login' and password='$haslo'" LIMIT 1);


  1. $login = mb_strtolower($_POST["login"]);
  2. $haslo = $_POST["pass"];

Nie wiem w jakim celu zmniejszasz tekst, ale powinno być raczej:
  1. $login = mysql_real_escape_string(mb_strtolower((string)$_POST["login"]));
  2. $haslo = (string)$_POST["pass"];


Jeżeli korzystasz z sha1 wypadało by dodać sól, a jeszcze lepiej używać innego hashowania np. funkcja crypt czy hash
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 06:47