Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
Watched Topics
FAQ
Поиск
Пользователи
Группы
Регистрация
Профиль
Войти и проверить личные сообщения
Вход
Список форумов Cake-PHP.ru
->
Общий
Ответить
Имя
Тема
Сообщение
Смайлики
Дополнительные смайлики
Цвет шрифта:
По умолчанию
Тёмно-красный
Красный
Оранжевый
Коричневый
Жёлтый
Зелёный
Оливковый
Голубой
Синий
Тёмно-синий
Индиго
Фиолетовый
Белый
Чёрный
Размер шрифта:
Размер шрифта
Очень маленький
Маленький
Обычный
Большой
Огромный
Закрыть теги
[quote="theelephant"]Скажем есть такой код в модели: [code] var $validate = array( 'username' => array(array('rule' => VALID_ENDWORD, 'message' => 'Логин должен содержать только латинские буквы и числа.'), array('rule' => VALID_NOT_EMPTY, 'message' => 'Пустое имя пользователя'), array('rule' => VALID_UNIQUE, 'message' => 'Имя пользователя уже используеться')) ); [/code] Проблема в том что после первой ЛОЖНОЙ проверки он таки проверяет дальше это поле, выполняя запросы с "уязвимым" значением. аля [b]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[/b] как сделать что бы после первой false он прекращал проверки по этому полю?[/quote]
Настройки
HTML
ВЫКЛЮЧЕН
BBCode
ВКЛЮЧЕН
Смайлики
ВКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
Если у вас плохое зрение или вы не можете прочесть этот код по какой-то другой причине, то обратитесь за помощью к
Администратору
.
Код подтверждения: *
Введите код в точности так, как вы его видите. Код является регистро-зависимым, а символ нуля имеет косую линию внутри цифры.
Часовой пояс: GMT + 3
Перейти:
Выберите форум
CakePHP Форум
----------------
Общий
Установка и настройка
Творчество
Вопросы и пожелания
Комментарии к главам руководства по CakePHP 1.1
Обзор темы
Автор
Сообщение
theelephant
Добавлено: 02 Мар 2009 18:54:28
Заголовок сообщения:
Спасибо заработало!
Fenrir
Добавлено: 01 Мар 2009 14:03:11
Заголовок сообщения: Last - наше всё
Добавить ключ "last" => true к правилам, после завала которых нужно прекращать остальные проверки. Также прописывать правила "от общего к частному", т.е. сперва непустость, потом символы, потом уже уникальность - проверка идёт в порядке объявления.
theelephant
Добавлено: 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 он прекращал проверки по этому полю?
Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB
Если ничего интересного не нашли, можно рекламу почитать, а рекламируется у нас сегодня «».