Просто предложение: было бы здорово добавить некоторую информацию о проблемах безопасности в различных методах хранения JWT на стороне клиента (cookie / localStorage) - XSS, CSRF и т. Д.
@sarneeh, спасибо, что открыли этот выпуск. 👍
Если у вас есть время, чтобы создать запрос на включение, сделайте это! (_у вас есть право записи в этот репозиторий_)
Проблемы безопасности, применимые к JWT, такие же, как и для других схем токенов.
Если злоумышленник сможет запустить XSS-атаку на домен, он сможет получить JWT и использовать его для олицетворения пользователя независимо от того, как он хранится на клиенте.
Вредоносный JS может так же легко читать и пропускать файлы cookie и localStorage.
Мы должны сообщить людям, использующим JWT, что они не защищают от атак OWASP, а являются просто _ удобным_ способом передачи подписанных заявлений / данных. 📝
@nelsonic
Проблемы безопасности, применимые к JWT, такие же, как и для других схем токенов.
Если злоумышленник сможет запустить XSS-атаку на домен, он сможет получить JWT и использовать его для олицетворения пользователя независимо от того, как он хранится на клиенте.
Вредоносный JS может так же легко читать и пропускать файлы cookie и localStorage.
Частично согласен. У вас есть что-то вроде файлов cookie httpOnly
и secure
которые не позволяют злоумышленнику получить ваш JWT. Но я полностью согласен с тем, что если вы открыты для XSS-атак, это не защищает вас от чего-либо, поскольку кто-то может делать что-то от имени пользователя (не красть токен, а, например, внедрять вредоносный скрипт).
Так что я думаю, что, в конце концов, не имеет значения, используете ли вы localStorage
или cookie
- если вы открыты для атак OWASP - вы облажались. Но если вы защищены от них - будьте осторожны с обоими методами.
Я бы хотел подготовить PR, но у меня сейчас мало времени, и я буду свободен только в ближайшие 1-2 месяца. Если кто-то не обгонит меня, подготовлю пиар 😄
@sarneeh, спасибо, что открыли этот выпуск.
Если у вас есть время, чтобы создать запрос на включение, сделайте это! (_у вас есть право записи в этот репозиторий_)Проблемы безопасности, применимые к JWT, такие же, как и для других схем токенов.
Если злоумышленник сможет запустить XSS-атаку на домен, он сможет получить JWT и использовать его для олицетворения пользователя независимо от того, как он хранится на клиенте.
Вредоносный JS может так же легко читать и пропускать файлы cookie и localStorage.Мы должны сообщить людям, использующим JWT, что они не защищают от атак OWASP, а являются просто _ удобным_ способом передачи подписанных заявлений / данных.
Как сказано выше, cookie может иметь параметр httpOnly.
Согласно этой статье, действительно небезопасно использовать localstorage вместо httponly cookie.
Хотя я чувствую, что ясно дал понять, что никогда не следует хранить конфиденциальную информацию в локальном хранилище в предыдущем разделе, я чувствую необходимость специально вызывать веб-токены JSON (JWT).
Самые большие нарушители безопасности, которых я вижу сегодня, - это те из нас, кто хранит JWT (данные сеанса) в локальном хранилище. Многие люди не понимают, что JWT - это, по сути, то же самое, что имя пользователя / пароль.
Если злоумышленник может получить копию вашего JWT, он может отправлять запросы на веб-сайт от вашего имени, и вы никогда не узнаете. Относитесь к своим JWT как к номеру кредитной карты или паролю: никогда не храните их в локальном хранилище.
Самый полезный комментарий
@nelsonic
Частично согласен. У вас есть что-то вроде файлов cookie
httpOnly
иsecure
которые не позволяют злоумышленнику получить ваш JWT. Но я полностью согласен с тем, что если вы открыты для XSS-атак, это не защищает вас от чего-либо, поскольку кто-то может делать что-то от имени пользователя (не красть токен, а, например, внедрять вредоносный скрипт).Так что я думаю, что, в конце концов, не имеет значения, используете ли вы
localStorage
илиcookie
- если вы открыты для атак OWASP - вы облажались. Но если вы защищены от них - будьте осторожны с обоими методами.Я бы хотел подготовить PR, но у меня сейчас мало времени, и я буду свободен только в ближайшие 1-2 месяца. Если кто-то не обгонит меня, подготовлю пиар 😄