Где хранить токен с ограниченным permission?
DOM и браузер
Токен с ограниченными правами (permission) хранят так же безопасно, как обычный: в памяти или `HttpOnly` cookie. Ограниченные права снижают ущерб при краже, но не отменяют безопасное хранение.
Где хранить
Принцип тот же, что для любого токена:
- В памяти — если нужен в JS (короткоживущий).
- `HttpOnly` cookie — для долгоживущих (защита от XSS).
Ограниченные права не делают токен «безопасным для localStorage» — украденный токен всё равно даёт доступ в рамках своих прав.
Почему ограниченные права важны
Принцип наименьших привилегий: токен с минимальными нужными правами при краже наносит меньше ущерба:
Токен только на чтение → украли → злоумышленник не сможет менять данные
Токен с полным доступом → украли → полный контрольПрактика для ограниченных токенов
- Scoped tokens — токен с конкретными scope (
read:orders, но неdelete). - Короткий срок жизни — минимизирует окно использования.
- Хранить безопасно — память/HttpOnly cookie, не localStorage.
- Отзыв — возможность инвалидировать.
Пример
API-токен только для чтения публичных данных можно хранить менее строго, но токен, дающий доступ к личным данным, — строго (память/HttpOnly), даже с ограниченными правами.
Коротко для собеседования
Токен с ограниченными правами хранят безопасно так же, как любой (память или HttpOnly cookie, не localStorage) — украденный токен даёт доступ в рамках своих прав. Ограничение прав (scope, короткий срок) снижает ущерб при краже (принцип наименьших привилегий), но не заменяет безопасное хранение.