Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system autoryzacji uzytkownika
xamil
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 9.01.2005

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


Ogólnie jakie metody polecacie aby było dobrze i bezpiecznie;)

Kiedyś dawno temu tak sobie rozpisałem to co wymyśliłem:

Cytat
zdarzenia:
  [ok]powitanie "Proszę się zalogować aby uzyskać dostęp do bazy"
  [ok]nie_podanie_loginu_lub_hasla -> powitanie -> spróbuj_wylogować_jak_nie_to_trudno;) -> usun_klucz
  [ok]wylogowanie_poprawne "Użytkownik "{user_login}" został wylogowany" -> wyloguj -> usun_klucz
  wylogowanie_błędne (ktoś naciska np. przycisk wylogowania a już jest wylogowany)
  klucz_istnieje
    [ok]klucz_poprawny wyświetlamy komunikat "Użytkownik "{user_login}" jest już wylogowany" -> usun_klucz
    [error]klucz_niepoprawny "Próba nieautoryzowanego dostępu do bazy" i -> odrzuc_ip (Musi to być bo ktoś może przelecieć wszystkie klucze a przez to zamykać uzytkownikom dostęp do serwisu. Mało tego wyłapie klucze.)
  [ok]klucz_sesji_nie_istnieje -> powitanie
  błędne_logowanie
  [error]błędny_login "Błędny "Użytkownik" lub "Hasło"" -> odrzuc_ip
  [error]błędne_hasło -> błędny_login -> odrzuc_uzytkownika (to będzie max jakieś 5 prób) -> odrzuc_ip
  [ok]brak_aktywności "Brak aktywności przez co najmniej "{sekundy}" sekund, proszę się zalogować ponownie" -> wyloguj -> usuń klucz
  [ok]proba_wejscia_do_systemu_bez_klucza najpierw sprawdzam przez cookie lub $_GET czy klucz istnieje i jak nie to -> powitanie
  [error]proba_wejscia_do_systemu_z_błędnym_kluczem ->(wylogowanie_bledne->klucz_istnieje->klucz_niepoprawny) -> odrzuc_ip
  proba_wejscia_na_zablokowane_konto
  [error]błędne_hasło  "Dostęp do bazy z tego IP został zablokowany, proszę spróbować ponownie {Y-m-d} o {H:i}" -> odrzuc_uzytkownika -> odrzuc_ip
  [error]poprawne_dane  "Dostęp do bazy z tego IP został zablokowany, proszę spróbować ponownie {Y-m-d} o {H:i}"
  [error]proba_wejscia_z_zablokowanym_ip ->(próba_wejscia_na_zablokowan_konto->błędne_hasło) oraz każde odświerz powoduje -> odrzuc_ip
  [error]błędne_ip ->odrzuć_ip "Błędne IP, proszę zalogować się ponownie" nie wylogowywać!


Znaczniki error i ok to to czy straszymy użytkownika że wystąpił błąd i po drugie czy podejmujemy środki zabezpieczające np. dodanie ip. do listy banowanych ip. Oczywiście musi zostać przekroczona określona ilość prób.

Czyli głównie chodzi o to, że przechowujemy klucz sesji danej osoby w bazie i porównujemy z tym kluczem którym przedstawia się user. Jeśli się nie zgadza to oczywiście się nie dostaje oraz jego ip dostaje się na czarną liste ip.

Co wy o tym sądzicie? Jak wy byście to rozegrali? Czyli jak zabezpieczyć i autoryzowac user'ow?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Master Miko
post
Post #2





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


1. No oczywiście... używanie sesji to dobry pomysł... ale robisz je na bazie danych czy zostawiasz na plikowych?
2. Czasowe zablokowanie po np. 5 nieudanych próbach to dobry pomysł. W moim życiu pomyliłem się w logowaniu kiedyś 4 razy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
3. Zabezpieczenia wylogowania są trochę nie potrzebne, bo możesz np. sprawdzać czy gościu jest zalogowany.. jeśli nie używać headera do logina. Małoprawdopodobne jest że użytkownik wejdzie na logout nie będąc zalogowanym.. bo nie będzie miał jak (chyba że udostępnisz mu nie znikający przeycisk "wyloguj się"). Tego będzie mógł dokonać tylko przez manualne wpisanie adresu do przeglądarki... wtedy blokowanie może być potrzebne: po np. 7 takich próbach może nastąpić ban na jakiś czas.
4. Brak aktywności to dobry pomysł. Po 3 minutach header do strony wylogowania.

Tzn cały ten system można podsumować tak:
- po 5 nieudanych próbach zalogowania = ban czasowy
- po 7 wylogowaniach bez zalogowania = ban czasowy


ps. Chcesz za każdym razem jak user chodzi po stronie sprawdzać czy jest zarejestrowany? Moim zdaniem to zły pomysł. Bardzo zawali bazę danych. Lepiej te dane czy user jest zarejestrowany trzymać w sesji.
Czyli przy loginie raz sprawdzić czy user istnieje w bazie... potem w sesji ustalić, że jest zalogowany.

Ten post edytował Master Miko 17.05.2006, 11:09:54
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: 28.12.2025 - 11:42