DbHelp.ru
Маленький Yii блог
Комментарии
Гость: http://kinoebi.ge/user/GuadalupeL48/ https://www.oix.legal/ico-forum/index.php?topic=879640.0 http...
bshaneve: cialis 20 mg buy cialis order cialis online buy cialis online
Гость: http://old.kam-pod.gov.ua/user/MickeyDHage/ http://womansheaalth.ru/user/LeandraA18/ https://www.s...
Гость: best online casino liberty slots | casino games | play online casino play online casino
Гость: https://tech-tree.org/index.php?title=Full_Tilt_Poker_Referral_Code_-_Saving_Dollars_To_Make_Income ...



Сервер 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. Серия рецентов "By Example" пытается предоставить для разработчиков примеры использования самых распостраненных действий в Yii. Учимся использовать CHtml::link() на примерах! [+update ... ""By Example" : CHtml - link()"

  2. Самое простое и элементарное решение для избавления от index.php в урле – это использование возможностей mod_rewrite.  Для того что ... "Как убрать index.php в адресе"

  3. Спасибо команде разработчиков нашего чудесного фреймворка за отличный подарочек под ёлку - новую версию yii. В релиз включено более 50 ... "Обновляемся, Yii 1.1.13"

[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! :))

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


Код:
Имя: