2016-11-01 2 views
2

Все, что я читал об использовании JWT для веб-сайтов, похоже, подразумевает, что они предназначены для SPAs.Может ли JWT использоваться для сайта, не относящегося к SPA?

На моем веб-сайте много статических страниц, но также пользователю необходимо выполнить вход. Используется ли JWT?

ответ

2

Зависит от того, что вы подразумеваете под соответствующим.

Если вы создадите jwt правильно и сохраните его в httponly, защищенном файле cookie, который во многом будет похож на простой старый идентификатор сеанса (но он может быть неактивен на сервере со всеми потенциальными уязвимостями сохранения состояния на клиенте, например, повторного воспроизведения).

Если вы храните его любым способом, кроме файла cookie httponly, он будет менее безопасным. Один xss в вашем приложении позволит злоумышленнику украсть токены пользователей. Если вы хотите принять этот риск, зависит от вас, но для критически важных приложений это может быть недостаточно.

Итак, jwt - это только подписанный (но не зашифрованный по умолчанию) способ хранения материалов на клиенте. Пользователь или злоумышленник не могут легко изменять содержимое, но это все, он может его прочитать, воспроизвести и т. Д.

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

Смежные вопросы