Как предотвратить отладку кода клиентами в javascript с помощью инструмента разработчика

У нас есть приложение angularjs, где у нас разные роли, связанные с пользователями. Например: две роли: администратор и местный. В зависимости от роли мы показываем некоторые пункты меню для администратора и добавляем дополнительные функции / экран для администратора.

UserInfo со свойством Admin возвращается из ответа входа в систему и зависит от того, что мы решаем, какие меню и экраны будут отображаться.

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

Короче говоря, кто имеет представление о коде JavaScript, может получить права администратора. Есть ли какая-либо идея, кроме минимизации кода, для предотвращения такого рода угроз безопасности

Спасибо

1 ответ

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

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

Другие вопросы по тегам