Próbuję dowiedzieć się, plusy i minusy korzystania z uwierzytelniania opartego sessionid vs uwierzytelniania opartego ciasteczkasessionid vs ciasteczka
O ile widzę w oparciu ciasteczka uwierzytelniania
- Użytkownik złoży logowanie wysyłanie żądania ich poświadczenia
- poświadczenia są sprawdzane w bazie danych
- Cookie zostanie ustawiony ze szczegółami użytkownika
- Ten zostanie wykonane za pośrednictwem protokołu HTTPS, a pliki cookie zostaną zaszyfrowane.
- w .NET, jeśli jest to tożsamość użytkownika authcookie zostanie ustawiony
- db jest trafiony tylko raz i kolejne wywołania prostu sprawdzić cookie auth
W przypadku uwierzytelniania opartego sesji
- Użytkownik przesyła żądanie logowania przesyłając swoje poświadczenia
- Dane uwierzytelniające są sprawdzane w bazie danych
- Generowany jest identyfikator sesji i jest również przechowywany w db
- Cookie zostanie ustawiony z danymi użytkownika i generowanego identyfikatora sesji
- Kolejne wywołania porówna identyfikator sesji przeciwko jednej w bazie
- db jest trafiony każdym razem
Pytania
Czy istnieje jakiś powód, aby preferować jeden nad drugim? Czy plik cookie jest mniej bezpieczny (nawet jeśli je szyfrujesz i podpisujesz)? Czy wydajność sesji jest gorsza, ponieważ trafia ona do bazy danych podczas każdego połączenia? Widziałem kilka stron, które opierały się w taki czy inny sposób, ale nie potrafiłem dokładnie określić, z jakiego podejścia korzystać. Wszelkie dyskusje/sugestie będą bardzo mile widziane.
Przeprosiny za opóźnioną odpowiedź.Obecnie audytuję pewien kod (Java), który faktycznie tworzy klucz sesji, gdy użytkownik loguje się, zapisuje go jako plik cookie i za każdym razem, gdy wywoływana jest usługa chroniona, otrzymuje klucz sesyjny i sprawdza bazę danych, aby sprawdzić, czy sesja jest aktywna. Wydaje się, że jest to inny projekt niż formularz ASP, gdzie nie trafiamy do bazy za każdym razem. Podejście z sesją i sprawdzenie bazy danych wydaje się być nieefektywne. Czy mam rację, myśląc w ten sposób? – user275157
Moja opinia: Uderzanie w db z kontrolą sesji dla każdego wniosku nie jest wielkim problemem. Sama tabela sesji będzie wymagać starannego indeksowania i optymalizacji, aby uniknąć wąskich gardeł. – Brett
Dzięki. I tylko dla pewności - czy mam rację, sądząc, że powyższa metoda niekoniecznie jest bezpieczniejsza niż metoda autorów formularzy? – user275157