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
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Wymuszenia na ilość znaków czy rodzaj znaków w haśle są wyjątkowo irytujące - nie Twój, jako administratora interes jakie jest moje hasło. Lepiej podawaj na bieżąco podczas jego wpisywania jego "siłę", którą to już możesz sobie w dowolny sposób oszacować. Ale jak będę chciał założyć jakieś śmieciowe konto z hasłem "qwerty" to daj mi je założyć.
2. Jak już wspomniano: nie blokuj konta, a wymuszaj wpisanie jakiejś CAPTCHA-y - to znacznie wygodniejsze rozwiązanie dla użytkowników.
3. Składować najprawdopodobniej wystarczy podstawowe dane: datę i czas, IP, id użytkownika (jeżeli w ogóle istnieje) - o przechowywaniu adresu IP możesz poczytać tutaj: http://forum.php.pl/index.php?showtopic=188630&hl=
4. Nigdy nie wyświetlaj hasła użytkownika (dotyczy to również pola typu password), a już szczególnie na stronach niezabezpieczonych SSL-em. Jak już to dodaj opcję "[x] pokaż hasło", które przy pomocy JS zamieni pole typu password na text po stronie klienta.
5. Informacje o nieudanych logowaniach musisz przechowywać w bazie danych - może to być tabela przechowywana bezpośrednio w pamięci, w przypadku MySQL jest to typ HEAP / MEMORY. Sesje można bez problemu zrestartować dla każdego żądania. Ba! Trzeba zadać sobie nieco trudu by ją w ogóle podtrzymać, dlatego też większość takich robotów tego nawet nie próbuje robić.
6. Sam nagłówek Location nie gwarantuje przekierowania, dlatego też po jego wystąpieniu powinieneś zawsze wyświetlić chociażby najprostszy dokument HTML w stylu:
  1. ...
  2. <html ...><head>...</head><body><p>Przekierowanie na <a href="URL">URL</a>.</p></body></html>
Oraz zakończyć działanie skryptu - exit.
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: 15.10.2025 - 03:12