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
Rymtumtum
post 5.02.2018, 19:00:54
Post #2





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

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


Czy to o to chodziło?? Wszystko działa tylko pytanie czy teraz jest bezpieczne ^^

  1. try {
  2. $connect = @new mysqli($host, $db_user, $db_password, $db_name);
  3. if ($connect->connect_errno) {
  4. throw @new Exception($connect->error);
  5. } else {
  6. $login = $_POST['login'];
  7. $login = filter_var($login, FILTER_SANITIZE_STRING);
  8. $password = $_POST['password'];
  9. $password = hash('sha512', $password);
  10. if ($stmt = mysqli_prepare($connect, "SELECT password FROM users WHERE login=? ")) {
  11. mysqli_stmt_bind_param($stmt, "s", $login);
  12. mysqli_stmt_execute($stmt);
  13. mysqli_stmt_bind_result($stmt, $user_password);
  14. mysqli_stmt_fetch($stmt);
  15. mysqli_stmt_close($stmt);
  16. if ($password == $user_password) {
  17. echo "udalo Ci sie zalogowac";
  18. } else {
  19. echo "logowanie nie powiodlo sie";
  20. }
  21. }
  22. mysqli_close($connect);
  23. }
  24. } catch(Exception $error) {
  25. echo $error;
  26. }


No i 2 sprawa jak teraz zrobić porównanie hasła na poziomie bazy danych co_jest.gif
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: 12.06.2024 - 12:51