Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Bezpieczeństwo przesyłanych danych, weryfikacja loginu przesłanego przez urzytkownika
Rymtumtum
post 4.02.2018, 17:21:29
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.11.2016

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


Witam, napisałem skrypt logowania do strony i chciałbym żebyście wskazali mi ewentualne błędy w zabezpieczeniu tego skryptu.

  1. <?php
  2. if (isset($_POST['login']) && (isset($_POST['password']))) {
  3. require_once("connect.php");
  4. mysqli_report(MYSQLI_REPORT_STRICT);
  5. try {
  6. $connect = new mysqli($host, $db_user, $db_password, $db_name);
  7. if ($connect->connect_errno != 0) {
  8. throw new Exception(mysqli_connect_errno());
  9. } else {
  10. $veryfication = true;
  11. $login = $_POST['login'];
  12. $var_login = filter_var($login, FILTER_SANITIZE_STRING);
  13. $password = $_POST['password'];
  14. $hash_pass = hash('sha512', $password);
  15. $result = $connect->query("SELECT * FROM users WHERE login LIKE '$var_login'");
  16. $how_much_user = $result->num_rows;
  17. if ($how_much_user == 1) {
  18. $record = $result->fetch_assoc();
  19. $user_pass = $record['password'];
  20. if ($hash_pass !== $user_pass) {
  21. $veryfication = false;
  22. }
  23. } else {
  24. $veryfication = false;
  25. }
  26. if ($veryfication == true) {
  27. echo "Udalo Ci sie zalogowac!<br>Witaj ".$var_login."!";
  28. } else {
  29. echo "bledne danie logowania;
  30. }
  31.  
  32. $connect->close();
  33. }
  34. } catch(Exception $error) {
  35. echo '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodności. Prosimy o rejestrację w innym terminie.</span>';
  36. echo '<br>Informacja dla dewelopera: '.$error;
  37. }
  38. } else {
  39. header("Location: ../log-in");
  40. }
  41. ?>


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post 4.02.2018, 17:46:37
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Dwie rzeczy:
  1. Zapoznaj się z prepared statements.
  2. Hasło możesz sprawdzić na poziomie bazy danych, nie musisz pobierać danych użytkownika.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 16.05.2024 - 17:27