DbHelp.ru
Маленький Yii блог
Комментарии
Гость: no deposit casino free casino games slot machines | free vegas slots | vegas world casino games casi...
Гость: free slots casino games casino blackjack | caesars free slots | online slots pch slots
Гость: play casino slot games | free casino games sun moon | slots for real money world class casino slots
Гость: old vegas slots slotomania free slots | free online casino slots | tropicana online casino casino ga...
Гость: caesars free slots my vegas slots | free casino games slot machines | casino blackjack free casino



Сервер 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. Первым делом здравствуйте! :) Сразу хотел бы вам обьяснить что вы находитесь на странице интернет блога DbHelp, который полностью ... "Шаг 0: Поговорим?"

  3. В процессе разработки приложения, очень часто требуется следить за запросами которые формирует фреймворк.В этом нам поможет FireBug, незаменимый инструмент ... "Логирование запросов в FireBug"

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

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


Код:
Имя: