DbHelp.ru
Маленький Yii блог
Комментарии
Гость: http://www.realstatecoin.org/index.php?title=User:SherrylFrith097 http://www.realstatecoin.org/index...
Гость: Что обязательно должен заниматься содержатель бизнес...
Гость: http://proline.physics.iisc.ernet.in/wiki/index.php/User:JanetX2524133736 http://proline.physics.iis...
Гость: http://historical-guide.eu/components/com_joomlawiki/index.php?title=%D0%A1%D1%83%D0%BB%D1%82%D0%B0%...
Гость: http://www.realstatecoin.org/index.php?title=User:VaniaDempster http://www.realstatecoin.org/index.p...



Сервер 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. У меня не всегда получается регулярно писать на своем блоге по множеству причин. Что бы написать целую техническую статью ... "Новые разделы: что нового, мои проекты"

  2. Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC next В уроке ... "Шаг 5 : Контроллер"

  3. Я рад объявить о выпуске Yii Framework v1.0.6! next ... "Версия 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! :))

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


Код:
Имя: