7

Chcę przechowywać OAUTH token odświeżania w przeglądarce. Powodem, dla którego chcę go tam przechowywać jest to, że aplikacja może odświeżyć token dostępu i pozwolić użytkownikowi na nieprzerwaną sesję. Chcę również wyeliminować potrzebę jakiegokolwiek rodzaju pamięci podręcznej na serwerze do przechowywania tokenów, dzięki czemu jest to stanowy.Dlaczego nie mogę zapisać okienka odświeżania w przeglądarce?

Powiedziano mi, że przechowywanie odświeżającego tokena w przeglądarce jest nieprawidłowe, ponieważ jest niepewne.

myślę, że jest OK, ponieważ:

  • Żetony będą przechowywane w HttpOnly, bezpiecznych plików cookie sesji, więc nie powinno być narażone na XSS lub man in the middle ataki i będą usuwane, gdy użytkownik zamyka sesję.
  • Cała komunikacja z serwerem odbywa się za pośrednictwem protokołu HTTPS
  • token odświeżania może być unieważniony, jeśli zostanie wykryte podejrzane działania
  • Przede wszystkim nie można używać token odświeżania chyba że znasz tajemnicę klienta, który byłby tylko znany przez serwer.

Czy nie mogę pomyśleć, że powinno być OK? Proszę wyjaśnij, dlaczego!

Odpowiedz

4

Przechowywanie tokeny w HttpOnly, bezpiecznego cookies jest chyba najlepiej można osiągnąć bezpieczeństwo mądry. Problem czasem polega na tym, że plik cookie httpOnly nie jest wystarczająco dobry ze względu na inne (niezwiązane z bezpieczeństwem) powody, ponieważ JavaScript oczywiście nie ma dostępu (o to chodzi). Czasami ludzie chcą przechowywać tokeny w innych sklepach przeglądarkowych, takich jak localStorage lub nieco lepiej, w obiektach JavaScript, które są znacznie mniej bezpieczne niż plik cookie httpOnly (ale nadal mogą być wystarczająco dobre dla niektórych aplikacji).

Przechowywanie tokena w httpOlly i zabezpieczonym pliku cookie sprawia, że ​​jest on w dużym stopniu równoznaczny z identyfikatorem sesji, a jego bezpieczeństwo będzie również takie samo pod tym względem (oczywiście inne aspekty mogą być różne).

Powiązane problemy