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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%)
|
No ale powiedz mi po co blokować dostęp użytkownikowi? Chcesz go odstraszyć czy uważasz to za jakieś zabezpieczenie? Przecież nie ma nic złego w tym, że użytkownik podejmie 7 czy 10 prób logowania, to przed czym powinieneś się zabezpieczyć, to żeby ktoś nie napisał automatu, który będzie próbował złamać hasło, dlatego skutecznie zrobisz to, jeżeli po kilku błędnych próbach pojawi się dodatkowo captcha do przepisania, automat wtedy już nie przejdzie. Dodatkowo przy rejestracji podczas walidacji danych powinieneś wymagać od użytkownika, żeby hasło miało przynajmniej te 6 znaków i najlepiej, żeby zawierało cyfrę i nie było identyczne z loginem, czy adresem e-mail. Blokowanie czasowe IP robi się jako zabezpieczenie przed flood'em, ale to już inna kwestia.
a co do tabeli to jak tam sobie chcesz możesz zrobić jakąś prostą tabelę typu: login_attemtps: id (INT) ip (VARCHAR) date (TIMESTAMP) i przy logowaniu zapytaniem zliczasz ilość prób dla danego IP w ostatnich 5 minutach SELECT COUNT(id) AS count FROM login_attempts WHERE ip = $ip AND date > DATE_SUB(NOW(), INTERVAL 5 MIN) lub nawet prościej, możesz każdą próbę wrzucać do sesji oczywiście pamiętaj o zabezpieczeniu zapytania przed sql injection, używaj funkcji mysql_real_escape_string(), a najlepiej PDO prepared statements |
|
|
|
mis logi w systemie logowania 11.12.2011, 12:46:47
tehaha nie blokuj po nicku, bo wtedy jakiś dowcipniś zabl... 11.12.2011, 15:42:19
mis po 1 przepraszam za 2 tematy takie same(coś mi się... 11.12.2011, 18:48:51
marins W jednym z moich portali dałem możliwość 10 błędny... 11.12.2011, 22:25:06
mis [PHP] pobierz, plaintext if($_SESSION['log... 11.12.2011, 23:18:22
tehaha Cytatilość znaków w haśle itp, obsługuje jquery (j... 12.12.2011, 00:04:41 
mis Cytat(tehaha @ 12.12.2011, 00:04:41 )... 12.12.2011, 00:07:04
Crozin 1. Wymuszenia na ilość znaków czy rodzaj znaków w ... 12.12.2011, 00:26:33
mis Dzięki za cenne porady!
a powiedzcie mi, jeże... 12.12.2011, 01:56:11
Crozin Dlaczego miałbyś coś związanego stricte z logowani... 12.12.2011, 09:02:51
mis Cytat(Crozin @ 12.12.2011, 09:02:51 )... 12.12.2011, 09:25:35 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 16:03 |