Состоялся релиз PHP фреймворка Yii версии 2.0.6.
Версия 2.0.6 является патч-релизом для ветки 2.0 и содержит более 70 небольших улучшений и исправлений, многочисленные улучшения документации и значительный прогресс с её переводом.
6 августа 2015
Состоялся релиз PHP фреймворка Yii версии 2.0.6.
Версия 2.0.6 является патч-релизом для ветки 2.0 и содержит более 70 небольших улучшений и исправлений, многочисленные улучшения документации и значительный прогресс с её переводом.
11 июля 2015
Вышел Yii 2.0.5 исправляющий проблему с безопасностью, найденную в классе yii\web\ViewAction
. Настоятельно рекомендуется обновиться. Обновление полностью совместимо с 2.0.4, содержит только исправление безопасности и не поломает ваш код.
Уязвимость в ViewAction
и заключается в возможности запускать любой PHP файл (или файл с расширением .php
) на диске передав относительный путь через параметр view
. Так как о проблеме сообщили через публичный трекер, мы исправили её и выпустили обновление немедленно.
Для этой уязвимости мы зарезервировали номер CVE-2015-5467.
30 июня 2015
Записался в подкасте «Пятиминутка PHP». Получилось не 5 минут, а пол часа. Говорили про php-fig, Yii и другие интересные штуки.
10 апреля 2015
Знакомые попросили проверить отчёт сканирования приложения Yii 2.0 на безопасность. Среди прочего HP Fortify WebInspect нашёл "SQL Injection: Blind" по URL:
http://example.com/post/view?id=10%27%09and%091%09%3d%09if(5%3d5%2c%09sleep(200)%2c%090)%09and%09%271%27%3d%271
что расшифровывается как
`10' and 1 = if(5=5, sleep(2000), 0) and '1'='1`
То есть классически закрыли кавычку и т.д.
Сделал тестовое приложение, запустил, получил страницу с постом с id = 10. То есть сканер среагировал на то, что нет ошибки или 404. Возможно, что SQL injection прошёл успешно.
Полез в код, там ничего особенного:
public function actionView($id) { $model = News::findOne($id); if (!$model) { throw new HttpException(404); } return $this->render('index', ['model' => $model]); }
Полез глубже и убедился, что параметр не вставляется в SQL. Используется prepared statement, всё как положено. Задумался.
Выполнил в консольке MySQL вот такое:
select * from post WHERE id = '10lalalallala';
Получил запись с id = 10 и вспомнил, что MySQL приводит строки к int-у почти как PHP. То есть, что бы мы не вставили после 10, MySQL переварит и не поперхнётся.
В итоге:
21 марта 2015
Для ускорения процесса релизов и того, чтобы придать официальным расширениям большую независимость мы думаем разделить расширения и шаблоны приложений на отдельные проекты GitHub. Ниже приведён предварительный план. Прежде чем что-либо менять мы хотели бы услышать ваше мнение и возможные предложения. Спасибо!
UPD: отклик был положительный, разделили.
2 марта 2015
Точно в срок вышел релиз PHP фреймворка Yii версии 2.0.3. В данную версию вошли около 50 улучшений и исправлений.
Подробнее можно почитать в анонсе на хабре.
24 февраля 2015
Не первый раз спрашивают, как поставить расширение Yii 2.0 без Composer. Отвечаю.
Ставить будем yii2-imperavi-widget.
composer.json
.vova07/imperavi
.vendor/vova07/imperavi
.vendor/composer/autoload_psr4.php
добавляем:'vova07\\imperavi\\' => array($vendorDir . '/vova07/imperavi/src'),
vendor/yiisoft/extensions.php
добавляем:'vova07/imperavi' => array ( 'name' => 'vova07/imperavi', 'version' => '2', 'alias' => array ( '@vova07/imperavi' => $vendorDir . '/vova07/imperavi/src', ), ),
Всё это делает за вас Composer. Лучше изучите его и не теряйте время.
13 января 2015
В 1.1 был только один шаблон приложения, который можно было развернуть через yiic webapp
после того, как вы скачаете сам фреймворк. Команда копировала шаблон приложения из директории фреймворка в указанную вами директорию.
В 2.0 шаблоны, как и всё остальное, ставятся через Composer. Ничего предварительно скачивать не нужно. Команда напоминает команду из 1.1, разве что указывается из какого пакета ставить шаблон:
composer global require "fxp/composer-asset-plugin:1.0.0" composer create-project --prefer-dist yiisoft/yii2-app-basic my/dir/basic
8 декабря 2014
Релизнули 2.0.1. Версия полностью совместима. Вмеру багфиксов и новые возможности.
28 ноября 2014
13 декабря 2014 проведу мастер-класс в Екатеринбурге. Целый день буду рассказывать о Yii, подходах к программированию, работе в команде и ещё много о чём. Всё на примере более-менее реального проекта — магазинной витрины.