Создаем блог вместе : bugfix #1
Рубрика: Новости
3 Июл. 2009Я надеюсь на эту статью обратят внимание люди которые занимаються обучением по моим урокам «Создаем блог вместе». Сегодня я обнаружил ошибку которую что бы хотел бы чтобы вы исправили у себя...
---Я уже исправил эту ошибку в уроках, поэтому все новые пользователи которые будут следовать им —получат безопасный код.
Ошибка заключается в том что я забыл написать правило для проверки логина (при регистрации) на допустимые символы. Следовательно любой пользователь мог использовать в логине к примеру теги или вредоносный код.
Откройте файл protected/models/User.php и найдите там метод rules. В самый конец надо добавить следующее правило:
array('login', 'match', 'pattern' => '/^[A-Za-z0-9А-Яа-я\_\-\s,]+$/u','message' => 'Логин содержит недопустимые символы.'),
У меня весь метод выглядит следующим образом:
public function rules()
{
return array(
// логин, пароль не должны быть больше 128-и символов, и меньше трёх
array('login, passwd', 'length', 'max'=>128, 'min' => 3),
// логин, пароль не должны быть пустыми
array('login, passwd', 'required'),
// для сценария registration поле passwd должно совпадать с полем passwd2
array('passwd', 'compare', 'compareAttribute'=>'passwd2', 'on'=>'registration'),
// правило для проверки капчи что капча совпадает с тем что ввел пользователь
array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd')),
// проверка пароля нашим методом authenticate
array('passwd', 'authenticate', 'on' => 'login'),
// bugfix #1
array('login', 'match', 'pattern' => '/^[A-Za-z0-9А-Яа-я\_\-\s,]+$/u','message' => 'Логин содержит недопустимые символы.'),
);
}
Вот и всё.
Хоть на первый взгляд и кажеться мелочью - если такое забыть на реально работающем проекте, могут быть большие проблемы.
Будьте внимательны.
Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
- В данном переводе раскрыта идея как закрыть сайт от гостей. т.е. пользователи должны войти в систему прежде чем смогут увидеть ... "Закрываем сайт от лишних глаз"
- Столкнулся с проблемой кодировки при использовании mail() функции в php. Для меня было очень странным что тело письма приходит в ... "Проблемы с кодировкой в теме письма"
- Во всех приложениях большую часть внимания мы с вами (программисты) должны уделять именно безопасности. Мы с вами живем в ... "Перевод : Безопасность"

[adm] zolter
Было сказано: Воскресенье, 05 Июль 2009
Спасибо всем кто при помощи системы Orphus помечает найденные ошибки в статьях!

[guest] Гость
Было сказано: Воскресенье, 05 Июль 2009
Глянул в предыдущий пост - народ предлагает выкладывать актуальный код в архивчике в конце статьи - присоединяюсь к пожеланиям.

[adm] zolter
Было сказано: Среда, 08 Июль 2009
пока сделал для двух уроков. чуть позже - сделаю для старых


