Насколько безопасны угловые охранники?

Я делаю интернет-магазин, и есть административная часть, где вы можете отслеживать заказы и изменять их.

Он защищен аутентификацией, которая выполняется на сервере узла, пароли хэшируются в БД и т. д., но я беспокоюсь о том, что защита маршрута все еще обходится.


person Simeon Nakov    schedule 30.11.2017    source источник


Ответы (1)


Вы должны беспокоиться.

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

Вам необходимо обеспечить безопасность на стороне сервера.

person Günter Zöchbauer    schedule 30.11.2017
comment
+1. Просто любопытно, как мы обеспечиваем безопасность на стороне, чтобы мы могли быть абсолютно уверены, что пользователи не могут просматривать маршруты, к которым у них нет доступа? - person Dinesh; 11.12.2019
comment
Не уверен, что вы имеете в виду. В браузере нет возможности принудительно что-либо изменить. Вы всегда можете изменить исходный код или даже создать свой собственный клиент. Если вы имеете в виду, что без учета изменения пользователем источника, защита маршрута достаточно безопасна. - person Günter Zöchbauer; 11.12.2019
comment
Ой, извините, моя глупая опечатка. Я имел в виду, как обеспечить безопасность на стороне сервера, чтобы мы могли быть абсолютно уверены, что пользователи не смогут просматривать то, что им не положено? Например: скажем, у меня есть сверхзащищенный API. Это не мешает пользователям возиться с Javascript и обманывать охрану маршрутизатора для просмотра пользовательского интерфейса защищенной страницы (конечно, данные защищены. Но разве они не могут просто увидеть структуру этой страницы). Или они даже могут это сделать? - person Dinesh; 11.12.2019
comment
Я не понимаю, почему вы хотите, чтобы кто-то не видел структуру приложения. Должна быть возможность использовать ленивую загрузку, чтобы разделить ваше приложение, например, пользовательскую и административную часть, и предотвратить загрузку этой части пользователями, не являющимися администраторами, на веб-сервере. Если вы лениво загружаете модули, то Angular должен разделить их на разные файлы при сборке приложения. - person Günter Zöchbauer; 11.12.2019
comment
Прямо точно. Я пытался сказать, что административная часть против неадминской части. Так что да, ваш пример имеет смысл. Так что ленивая загрузка — это путь. Спасибо за ваши терпеливые ответы. - person Dinesh; 11.12.2019
comment
Вам также необходимо ограничить веб-сервер, чтобы обслуживать модуль администратора только для пользователей-администраторов. Одной ленивой загрузки недостаточно. Злоумышленник по-прежнему может загрузить модуль с помощью curl/wget или аналогичного. - person Günter Zöchbauer; 11.12.2019