Лучшие практики Angular HTTPOnly Cookies и RoleGuards

Я хочу улучшить безопасность своих веб-приложений и начал искать актуальные концепции безопасности для Angular ›= 10.

Итак, я наткнулся на файлы cookie HTTPOnly, которые казались современными. С этого момента я работал только со стандартными токенами JWT и извлекал реквизиты, например. iat, exp и мои данные из jwt и построили на их основе соответствующие охранники.

Но если я правильно понял, как указано здесь HTTP Only Stackoverflow Question к куки нельзя получить доступ на стороне клиента.

Итак, мой вопрос к вам:

Как я могу создать защиту на основе ролей на стороне клиента, не обращаясь к файлу cookie и не дублируя усилия по отправке jwt-токена через заголовок запроса.

Заранее большое спасибо за ваши комментарии! С уважением Рагитага Полезно Бесполезно


Обновление: здесь ведется связанное, но не идентичное обсуждение файлов cookie и jwt: к другому связанному обсуждению

Но мне все же не хватает лучшей практики!


person ragitagha    schedule 25.04.2021    source источник


Ответы (1)


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

person urDMG    schedule 25.04.2021
comment
Я полностью с вами, и у меня уже есть RouteGuards на моем сервере. Но представьте интерфейс с разными ролями и представлениями, основанными на ролях, внутри jwt. Но без доступа к этому jwt я могу только вернуть пользовательский объект и сделать это на основе включенных туда данных, либо вернуть jwt тоже. Как вы думаете, как лучше? Заранее большое спасибо, с уважением, Рагитага. - person ragitagha; 26.04.2021
comment
@ragitaga Я думал об этом некоторое время и думаю, что лучшее, что вы можете сделать, это использовать Angular Universal или динамические пакеты/модули на сервере. Звучит как излишество, но это сработает =) Это можно автоматизировать и т. д., но это может быть немного сложно. Простая проверка токена на бэкенде сделает ту же работу и не позволит CRUD для авторизованных пользователей. - person urDMG; 26.04.2021
comment
jup, я согласен, забавно, что здесь ведется не идентичное, но связанное обсуждение: к другому связанному обсуждению. Большое спасибо ! - person ragitagha; 26.04.2021