DbHelp.ru
Маленький Yii блог
Комментарии
Гость: DocsPal is a free on-line file converter that helps all type of paperwork, video, audio, pictures, e...
Гость: VLC media participant can't only convert between completely different video codecs but it surely als...
Гость: Многие из нас являются ярыми меломанами, не представля...
Гость: FLAC (Free Lossless Audio Codec) — популярный открытый формат, предн...
Гость: For many who are searching for the suitable mp3 to mp4 converter online there are many choices avail...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Создаем блог вместе : bugfix #1

Рубрика: Новости

Оцените эту статью:

Рейтинг: 0.00 (0)
3 Июл. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Я надеюсь на эту статью обратят внимание люди которые занимаються обучением по моим урокам «Создаем блог вместе». Сегодня я обнаружил ошибку которую что бы хотел бы чтобы вы исправили у себя...

---

Я уже исправил эту ошибку в уроках, поэтому все новые пользователи которые будут следовать им —получат безопасный код.

Ошибка заключается в том что я забыл написать правило для проверки логина (при регистрации) на допустимые символы. Следовательно любой пользователь мог использовать в логине к примеру теги или вредоносный код.

Откройте файл 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' => 'Логин содержит недопустимые символы.'),
);
}

Вот и всё.

Хоть на первый взгляд и кажеться мелочью - если такое забыть на реально работающем проекте, могут быть большие проблемы.

Будьте внимательны.



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Я знаю что многие люди в связи с плохим пониманием английского языка не сидят на англоязычном форуме по yii ... "Yii Логотипы"

  2. Столкнулся с проблемой кодировки при использовании mail() функции в php. Для меня было очень странным что тело письма приходит в ... "Проблемы с кодировкой в теме письма"

  3. Если честно я немного подглядел список изменений которые уже были сделаны и решил опубликовать их для вас. Скорее всего изменения ... "Что нас ждет в 1.0.6?"

[guest] Maxx

Было сказано: Суббота, 04 Июль 2009

Большое спасибо!

[guest] Иван

Было сказано: Суббота, 04 Июль 2009

Сенк! Исправил :)

[adm] zolter

Было сказано: Воскресенье, 05 Июль 2009

Спасибо всем кто при помощи системы Orphus помечает найденные ошибки в статьях!

[guest] Гость

Было сказано: Воскресенье, 05 Июль 2009

Глянул в предыдущий пост - народ предлагает выкладывать актуальный код в архивчике в конце статьи - присоединяюсь к пожеланиям.

[adm] zolter

Было сказано: Среда, 08 Июль 2009

пока сделал для двух уроков. чуть позже - сделаю для старых

[guest] pasha

Было сказано: Пятница, 21 Август 2009

hello!)))

[guest] zolter

Было сказано: Пятница, 21 Август 2009

hi! :))

Оставить комментарий


Код:
Имя: