DbHelp.ru
Маленький Yii блог
Комментарии
Гость: vegas world free slots games celebrity slots cleopatra slots casino slots | https://freecasinoslots....
Гость: generic brand for viagra, name brand viagra buy cheap brand viagra, brand viagra https://brandvi...
Гость: brand viagra online - generic brand for viagra brand viagra vs generic viagra, name brand viagra ...
Гость: http://yandex.ru/collections/card/5ba403c74f59ff00c3ca55dc/ http://yandex.ru/collections/card/5ba3e...
Гость: navigate to this site [url=http://bac2012.tk/]more help[/url] continued [url=http://fogroup.ru/]re...



Сервер 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. Сегодня в пять утра пришлось ручками (через Zend) менять ссылки типа "test.html" на "http://ttt.ru/super_test.php" в примерно 2000 html файликах. ... "Вопрос: Замена одинаковых строчек в куче файлов"

  2. Давайте сегодня поговорим о том как силами nginx мы можем убрать "index.php" из урла. Делается это всё давольно просто. Первым делом ... "Избавляемся от index.php (nginx)"

  3. Сегодня обнаружил что мой бывший сокурсник написал свой некий мод на Yii Blog. Исходные коды я не смотрел, но ... "Yii blog new [update]"

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

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


Код:
Имя: