theelephant
цитировать
Зарегистрирован: 27 Фев 2009 21:02:33 Сообщения: 2
|
Добавлено: 27 Фев 2009 21:06:37 Заголовок сообщения: Валидация модели и проблема безопасности (и нагрузки) |
|
|
Скажем есть такой код в модели:
Код: |
var $validate = array( 'username' => array(array('rule' => VALID_ENDWORD, 'message' => 'Логин должен содержать только латинские буквы и числа.'),
array('rule' => VALID_NOT_EMPTY, 'message' => 'Пустое имя пользователя'),
array('rule' => VALID_UNIQUE, 'message' => 'Имя пользователя уже используеться')) );
|
Проблема в том что после первой ЛОЖНОЙ проверки он таки проверяет дальше это поле, выполняя запросы с "уязвимым" значением.
аля
SELECT `User`.`id`, `User`.`created`, `User`.`updated`, `User`.`username`, `User`.`password`, `User`.`email`, `User`.`is_active`, `User`.`activation_token`, `User`.`WMID`, `User`.`WMR`, `User`.`WMZ` FROM `users` AS `User` WHERE `username` = '%#%#' LIMIT 1
как сделать что бы после первой false он прекращал проверки по этому полю? |
|
Fenrir
цитировать
Зарегистрирован: 29 Авг 2008 07:59:05 Сообщения: 5
|
Добавлено: 01 Мар 2009 14:03:11 Заголовок сообщения: Last - наше всё |
|
|
Добавить ключ "last" => true к правилам, после завала которых нужно прекращать остальные проверки. Также прописывать правила "от общего к частному", т.е. сперва непустость, потом символы, потом уже уникальность - проверка идёт в порядке объявления. |
|