У меня есть веб-страница в AngularJS, и я хочу выполнить некоторые проверки на самой стороне клиента. Поэтому я сравниваю значения $scope
и проверяю события пользователя. Например:
$scope.limit = 5;
$scope.reached = 5;
$scope.check = function() {
if ($scope.reached >= $scope.limit) {
alert("Sorry, limit reached.");
} else {
alert("Success!");
}
};
Но, можно получить доступ и изменить $scope
с после выбора элемента в Элементы вкладку и затем запустить эту команду в консоли:
angular.element($0).scope().limit = 100;
//or by running $scope.limit = 100; if you're using Batarang
После успешно выполнив эту команду, я получу предупреждение как Успех. Я создал образец страницы для целей тестирования: http://keval5531.github.io/angular.html
Итак, можно ли отключить доступ или манипулировать до $scope
? Я всегда могу использовать сервер для проверки, но я уверен, что должен быть какой-то способ сохранить надежную проверку на стороне клиента.
EDIT: Я имею в виду нечто похожее на безупречное, что потребует больше усилий и опыта для пользователя, чтобы манипулировать отправляемыми данными, а не только манипулированием DOM.
Никогда не доверять клиенту. Никогда. Валидация на стороне клиента отлично подходит для немедленной обратной связи. Если вам нужна проверка подлинности с ошибкой, вы абсолютно должны это сделать на сервере. –
Да, для всего, что будет стоить мне, я добавил проверку на стороне сервера, которая всегда будет отключать пользователя от выполнения действий после достижения предела. Но я был обеспокоен тем, что манипулировать данными в браузере не так просто. Я знаю, что пакеты можно легко манипулировать перед отправкой, но мне нужны были некоторые меры предосторожности для дальнейших проверок в моей системе, что было бы тривиально. – Keval
Я знаю, что вы пытаетесь сделать, но это напрасно. Отображения URL-адресов являются общедоступными. Традиционный веб-браузер может отправлять HTTP-запросы, или кто-то может использовать CURL для HTTP-запросов. Поэтому, если безопасность вас беспокоит, я не буду беспокоиться о том, что пользователи, пытающиеся манипулировать вашей клиентской стороной данных, не будут беспокоиться. –