2013-03-27 3 views
0

Мне было интересно, если я изменил статус компонента (то есть, поле со списком) в приложении EXTJS из включенного для отключения с использованием .setDisabled (true).EXTJS - Что действительно происходит, когда я отключу компонент в EXTJS?

Что действительно происходит за кулисами? Это только CSS, который был изменен для этого компонента или это действительно изменение поведения компонента?

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

Как я могу избежать изменения компонентов пользователями?

+0

Вы, вероятно, не должны полагаться на безопасность, реализованную на стороне клиента. – austin

ответ

0

setDisabled(true) добавит отключенный атрибут к элементу HTML.

Это будет означать, что если/когда форма будет отправлена ​​обратно на сервер, значение этого элемента управления не будет включено. Он также изменит поведение элемента управления, он станет непригодным и непривлекательным, и по умолчанию отключенные элементы управления отображаются серым браузером.

ExtJS Я считаю, что также по умолчанию добавит класс css x-disabled к компоненту, который затем можно использовать для стилизации.

Как указано, любая безопасность, реализованная на стороне клиента, также должна быть проверена на стороне сервера. Любой пользователь может использовать IE Developer Tools, FireBug и т. Д., Чтобы изменить значения элементов HTML, которые будут обходить любые правила безопасности, которые вы устанавливаете на клиенте.

+0

Спасибо за объяснение. Поэтому, полагая, что нет надежных контрольных точек на стороне сервера, если пользователь на стороне клиента отлаживает код и изменяет код, т. Е. myCombo.enable(), тогда они могут видеть значения/записи, которые были загружены в хранилище комбо, прежде чем он был отключен. Это верно? любое объяснение будет оценено. Спасибо –

+0

Исправить. Тот факт, что окно отключено, абсолютно не влияет на то, какие данные имеются или недоступны в хранилище коробки. Поддержанный пользователь может получить доступ к нему независимо от атрибута disabled. –

+0

Каковы наилучшие практики в таких случаях, я угадываю, чтобы удалить все из магазина, прежде чем отключить ... любые другие хорошие практики в целом? –

0

Отключение любого компонента extjs на стороне клиента вы просто изменяете представление и поведение вашего пользовательского интерфейса. Вы должны ВСЕГДА делать все ваши проверки безопасности на стороне сервера.

+0

Я также сделаю проверку безопасности на стороне сервера, однако, чтобы лучше понять extjs ui, мне было интересно, может ли кто-нибудь объяснить, что действительно делает, когда я это делаю: myComponenet.disable(); css и js оба. –

Смежные вопросы