Sesje są znacznie bezpieczniejsze niż, powiedzmy, ciasteczka. Ale nadal można ukraść sesję, a tym samym haker będzie miał pełny dostęp do tego, co jest w tej sesji. Niektórymi sposobami uniknięcia tego są IP Checking (który działa całkiem dobrze, ale ma bardzo niską wartość fi, a zatem nie jest wiarygodny sam) i używa nonce. Zwykle z dodatkiem, masz "token" na stronie, tak aby każda strona sprawdzała, czy pozycja końcowa ostatniej strony pasuje do tego, co zapisała.
W każdym sprawdzeniu bezpieczeństwa występuje utrata użyteczności. Jeśli przeprowadzasz sprawdzanie adresu IP, a użytkownik znajduje się za zaporą intranetową (lub inną sytuacją, która to powoduje), która nie ma stałego adresu IP dla tego użytkownika, będzie musiał ponownie uwierzytelnić za każdym razem, gdy straci swoje IP. Dzięki jednorazowości otrzymujesz zawsze dobrą zabawę "Kliknięcie w tył spowoduje, że ta strona się zerwie".
Ale z ciasteczkiem, haker może ukraść sesję za pomocą dość prostych technik XSS. Jeśli przechowujesz identyfikator sesji użytkownika jako plik cookie, są one również podatne na to. Więc nawet jeśli sesja jest dostępna dla kogoś, kto może wykonać hack na poziomie serwera (który wymaga znacznie bardziej wyrafinowanych metod i zazwyczaj pewnej ilości uprawnień, jeśli serwer jest bezpieczny), nadal będziesz potrzebować dodatkowego poziomu weryfikacji na każde żądanie skryptu. Nie powinieneś używać ciasteczek i AJAX razem, ponieważ sprawia to, że łatwiej jest całkowicie przejść do miasta, jeśli ten plik cookie zostanie skradziony, ponieważ twoje żądania ajax mogą nie uzyskać kontroli bezpieczeństwa dla każdego żądania. Na przykład, jeśli strona używa nonce, ale strona nigdy nie jest ponownie ładowana, skrypt może sprawdzać tylko pod kątem tego dopasowania. A jeśli plik cookie utrzymuje metodę uwierzytelniania, mogę teraz udać się do miasta, robiąc moje szaleństwo, używając skradzionego pliku cookie i dziury AJAX.
Należy zauważyć, że PHP przechowuje identyfikator sesji jako plik cookie. –
+1 Czy możesz wyjaśnić więcej o jednorazowo? możliwy link? – Petrogad
Artykuł wiki na temat nonce jest dość lekki, ale ma przyzwoite linki: http://en.wikipedia.org/wiki/Cryptographic_nonce podstawowa idea, jak rozumiem, jest jak token, ale można go użyć tylko raz (numer użyty raz). Każde żądanie strony sprawdza ostatni numer i tworzy nowy. Więc jeśli spróbuję ataku brutalnym siłą na twoje hasło, dostaję jeden strzał, jako że nonce nie pasuje do drugiej rundy. Jeśli ukradnę sesję i nonce tej strony, będę mógł kontynuować składanie próśb i odnawianie tej kwoty aż do złożysz wniosek, który wyrzuca niezgodność. Ponieważ zobaczyłby moją prośbę i mój nonce, zaktualizuj ... – Anthony