Токен против аутентификации сеанса

  • 10 октября, 12:44
  • 5037
  • 0

Токен против аутентификации сеанса

HTTP (протокол передачи гипертекста)

HTTP - это протокол для связи между клиентом и сервером. HTTP не имеет состояния, что означает, что каждый запрос не знает ни о каких предыдущих действиях. Например, когда пользователь входит в систему и затем перемещается по приложению, сервер не будет знать, что мы только что вошли в систему без аутентификации сеанса или токена.

Аутентификация сеанса

При аутентификации сеанса сервер отвечает за создание сеанса для конкретного пользователя, когда пользователь входит в систему, после чего идентификатор сеанса сохраняется в файле cookie в браузере пользователя. Для каждого запроса, отправленного пользователем, также будет отправляться файл cookie, где сервер может сравнивать идентификатор сеанса из файла cookie с информацией о сеансе, хранящейся на сервере, так что идентификация пользователя проверяется.

Проверка подлинности токена

При аутентификации токена сервер создает веб-токен JSON (JWT) и отправляет токен клиенту. Веб-токен JSON обычно хранится в локальном хранилище или в файле cookie и включается в каждый запрос пользователя. Сервер проверит веб-токен JSON. Аутентификация JSON Web Token - это более современный подход, используемый в новых веб-приложениях и для мобильных устройств. При таком подходе пользовательское состояние не сохраняется на сервере, а сохраняется в токене.

Масштабируемость

Как правило, веб-токен JSON гораздо лучше масштабируется в зависимости от размера приложения, поскольку он не имеет состояния, нет необходимости хранить пользовательскую информацию, с другой стороны, сеансы могут использовать много ресурсов сервера, если в приложении много действий.

Безопасность

Веб-токен JSON обычно хранится в локальном хранилище или в файлах cookie, и JavaScript имеет доступ к хранилищу, это просто означает, что веб-токены JSON могут быть уязвимы для XSS (межсайтовый скриптинг), поэтому очень конфиденциальные данные не должны хранится в локальном хранилище. В моем случае веб-токены JSON, которые хранятся в файлах cookie, уязвимы для атак CSRF (межсайтовая подделка запросов). Один из способов предотвратить атаку CRSF - убедиться, что файл cookie доступен только вашему домену. JWT также должен иметь короткий срок действия, а HTTPS / SSL должен использоваться для безопасной передачи данных от клиента и сервера.

Как лучше?

Хотя сеансы и веб-токены JSON являются жизнеспособными вариантами, в некоторых ситуациях один лучше использовать поверх другого. Для небольших и средних веб-сайтов, когда мы получаем только аутентификацию пользователя при входе в систему, обычно это хорошо. Для больших веб-сайтов и приложений, когда нам нужно обрабатывать большое количество запросов, JSON Web Token намного лучше из-за масштабирования.


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все