Что помешает доступу angular.element (). Injector () из консоли браузера при включенном производственном режиме - PullRequest
0 голосов
/ 21 октября 2019

Я сделал это в своем коде для производства

$compileProvider.debugInfoEnabled(false)
angular.reloadWithDebugInfo = angular.noop

Из-за приведенного выше кода, когда я запускаю этот скрипт в консоли браузера, тогда

angular.element(document.body).scope() // output undefind

Для контекста этоработает как ожидалось Но проблема в том, что внедренные сервисы не предотвращаются в консоли broswer

angular.element(document.body).injector().get('TestService')

, она возвращает экземпляр TestService, и любой может обновить реализацию метода и т. д. Как мы можем предотвратить angular.element (document.body) .injector () из консоли браузера в производственном режиме ???

1 Ответ

1 голос
/ 22 октября 2019

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

Если вы беспокоитесь о безопасности, вы не должны полагаться на то, что код клиента не виден,Растущая неясность кода не только не делает код более безопасным, но иногда даже ухудшает его. Единственное место, где можно безопасно выполнять задачи, связанные с безопасностью, - это сервер, а не клиент, независимо от того, как вы его запутываете.

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

...