Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> logi w systemie logowania
mis
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 25.04.2010

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


Hej,
stworzyłem systemik logowania, teraz chce dodać kolejne zabezpieczenie jakim jest ilość prób logowania.
Wydaje mi się, że najlepszym wyjściem jest stworzenie nowej tabeli, gdzie będzie zapis ost. logowanie,id,ip,user agent itp
i sprawdzać stąd ostatnie logowania. potem można zrobić zakładkę 'historia logowań'.

Potem np. wpisy starcze niż 30dni kasować.
Gdy ilość wpisów(gdzie np. kolumna status = 1 - czyli błędne logowania) będzie np. >= 5 i czas nie większy niż np. 1h wtedy blokuje konto na 20min.

Niestety każdy będzie mógł zablokować innej osobie konto, ale na to chyba nie da rady nic poradzić?


Jak myślicie?
Jak takie coś najlepiej rozwiązac
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mis
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 25.04.2010

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


  1. if($_SESSION['login'] == 1)
  2. {
  3. header("location:index.html"); // Przekierowanie do index.html
  4. }
  5. elseif ($_SESSION['login'] == 0) { // dostęp dla niezalogowanego użytkownika
  6.  
  7. if (!isset($_POST['send']))
  8. header("location:index.html");
  9. else
  10. { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  11.  
  12. include('./header.php');
  13. $login = mysql_real_escape_string(strip_tags(trim($_POST["login"])), ENT_QUOTES);
  14. $haslo = $_POST["haslo"];
  15.  
  16. $wynik=mysql_query("SELECT password, salt, register, user_groupid,user_id FROM `users` WHERE username='$login';");
  17. $row = mysql_fetch_assoc($wynik);
  18. $salt = $row['salt'];
  19. $password = $row['password'];
  20. $register = $row['register'];
  21. $generowane_haslo = md5(sha1($haslo.'+'.$salt.'%$^'.$register)); //generuje wynik "podwójnej soli"
  22.  
  23. if ($password == $generowane_haslo) {
  24. $_SESSION["username"] = $login;
  25. $_SESSION['login'] = 1;
  26. @dbquery('UPDATE users SET lastvisit = "'.time().'" WHERE user_id = ' . $row['user_id']);
  27. echo importantboxbig('Dziękujemy za zalogowanie się jako '.$login.'.<br> Zostaniesz przeniesiony na stronę główną za 3 sekund.','Przekierowanie...');
  28. echo '<meta http-equiv="refresh" content="3; url=index.html">';
  29.  
  30. }else {
  31. echo errorbox('Zostały wprowadzone nieprawidłowe dane');
  32. }
  33. }
  34. }


a o takim systemie logowania co powiecie.
ilość znaków w haśle itp, obsługuje jquery (jak coś źle, to nie da rady wysłać), czy z poziomu php też to zabezpieczyć?
Planuje jeszcze do tego dodać te logi i jak piszecie to po np. 5 próbach dodać token.

Ilość prób zrobić w mysql czy jako sesje?

Ten post edytował mis 11.12.2011, 23:25:08
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 08:28