Можно ли подделать клиентский код в приложении Angular?

У меня нет большого опыта в программировании на JavaScript или разработке приложений Angular, но в целом я понимаю, что когда JavaScript достигает клиентской части, его можно подделать.

Я встречал пример реализации авторизации на основе ролей в приложении Angular, где роли пользователей отправляются клиенту при успешном входе в систему (даже если они используют JWT, который должен быть «самодостаточным»). Затем значения ролей пользователя сохраняются на стороне клиента (локальное хранилище или переменная) и используются в canActivate route-guard.

(Я знаю, что значения, используемые в canActivate, будут определять только то, активировать ли маршрут и отображать ли рассматриваемый компонент, а реальная проверка роли происходит на стороне сервера, когда код компонента пытается получить данные.)

Мой вопрос: можно ли подделать эти сохраненные клиентом значения, или Angular имеет какие-либо возможности для обеспечения безопасности кода?

Заранее спасибо.


person atiyar    schedule 28.09.2019    source источник
comment
можно ли подделать эти сохраненные клиентом значения? - На стороне клиента можно подделать что-нибудь.   -  person Joseph    schedule 28.09.2019
comment
Да, они всегда под угрозой, существует несколько библиотек для шифрования данных на стороне клиента, которые вы можете попробовать перед сохранением в хранилище или куки, чтобы усложнить любую атаку. Например, npmjs.com/package/simple-crypto-js   -  person Bilal Siddiqui    schedule 28.09.2019


Ответы (1)


да.

Весь код, выполняемый в браузере, и все данные могут быть изменены пользователем.

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

person Richard    schedule 28.09.2019