Я полный нуб, когда дело доходит до безопасности, стратегий аутентификации. Поэтому я читал эту статью о "Аутентификации на основе токенов": https://scotch.io/tutorials/the-ins-and-outs-of-token-based-authentication
У меня есть 2 вопроса:
-
Я не понимаю, почему посредник (или хакер) не сможет увидеть токен, отправленный клиентом, и использовать его для олицетворения этого клиента/человека для получения ресурсов? Что делает аутентификации на основе JSON Web Tokens/OAuth2 более безопасными в этом смысле? Если бы мы каждый раз использовали токен только для одноразового использования, я бы понял, что даже если хакер сможет прочитать токен, он не сможет использовать его для другого запроса. Но так как токен остается неизменным до истечения срока его действия, насколько безопаснее стратегия аутентификации?
-
Как сервер узнает, что токен, отправленный клиентом, является действительным, то есть чем-то, что сервер обменял с клиентом во время входа в систему. Сохраняет ли сервер токен, сгенерированный в базе данных или где-то еще, и продолжает обновлять "метку времени последнего доступа" или что-то в этом роде и продолжает удалять токены, где last_accessed_time> 1 час назад, чтобы продолжать истекать после 1 часа бездействия?