Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Валидация модели и проблема безопасности (и нагрузки)

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 к правилам, после завала которых нужно прекращать остальные проверки. Также прописывать правила "от общего к частному", т.е. сперва непустость, потом символы, потом уже уникальность - проверка идёт в порядке объявления.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
theelephant

цитировать



Зарегистрирован: 27 Фев 2009 21:02:33
Сообщения: 2

СообщениеДобавлено: 02 Мар 2009 18:54:28    Заголовок сообщения: Ответить с цитатой

Спасибо заработало!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru