Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP] Zabezpieczenie logowania
Forum PHP.pl > Forum > Przedszkole
artekp999
Posiadam skrypt logowania który zapisuje także nieudane logowania po 5 błędnych próbach blokuje IP oraz dodaje ciasteczko które też blokuje na pewien czas.
Ale Ip można łatwo zmienić a ciasteczko usunąć.

Teraz moje pytanie, jakie dane pobierać a następnie porównywać aby osoba próbująca się włamać miała jak najtrudniejsze zadanie dostępu do logowania.
jaslanin
W sumie jedyne pewne dane które masz w takiej sytuacji to IP. Możesz dodać po wielu próbach logowania z tego samego IP captche co utrudni atak siłowy. Dodatkowo możesz użyć funkcji sleep(1) która opóźni odpowiedź serwera co zmniejszy szybkość odpytywania haseł.

dodatkowo sesje można zabezpieczyć przed session fixation poprzez regenerację ID sesji przynajmniej przed logowaniem funkcja session_regenerate_id()
używanie SSL
sprawdzanie czy IP nie zmieniło się w trakcie trwania sesji tj. w sesji zapisujesz numer IP i sprawdzasz czy się nie zmieniło
id sesji przechowywać w cookies a nie URL (obecnie w większości to ustawienie domyślne)
zabezpieczyć się przed CSRF
przy wylogowywaniu niszczenie sesji, funkcja sesion_destroy
ustawić krótki czas trwania sesji
zabezpieczyć stronę przed XSS (przez js można odczytać cookie z id sesji)
do powyższego cookie z sesją powinno
hasła zapisywać jako hashe z unikalnym saltem dla każdego rekordu np. za pomocą phpass
pliki cookies z sesją powinny być typu http_only dostępne w funkcji session_set_cookie_params
artekp999
dzięki za rady biggrin.gif napewno kilka z nich wcielę w życie
hyhyhy
Kolega wyżej nie wspomniał, to ja dopowiem jeszcze: uważaj też na SQL injection, wszędzie, gdzie odpytujesz bazę danych na podstawie zmiennej od usera sprawdź, czy wszystko jest pod kontrolą, czy może istnieje szansa na wrzucenie czegoś niepożądanego - na necie jest mnóstwo informacji, co mogą Ci zrobić i jak tego uniknąć.
Czego byś nie pisał, zakładaj, że user zawsze ma złe zamiary smile.gif
jaslanin
jeszcze odnośnie bezpieczeństwa to w sumie podsumowanie jak być bezpiecznym znajdziesz na stronie: http://www.zend.com/services/certification...-certification/ po prawej stronie Free PHP 5.3 Study Guide (trzeba się zalogować) jest tam dział security i najpoważniejsze rzeczy są tam opisane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.