SlideShare a Scribd company logo
Безопасность!
CVE-2018-1000208
Удаление файлов
Причина
• Нету проверки на пути вида ../../

• Ошибка в параметрах

return $this->modx->cacheManager->deleteTree($topicDirectory, array(

'extensions' => '.msg.php'

));
Решение
public function clear($topic)

{

$topicDirectory = $this->directory . ltrim($this->sanitizePath($topic), '/');



return $this->modx->cacheManager->deleteTree(

realpath($topicDirectory),

array(

'extensions' => array('.msg.php')
)

);

}

https://github.com/modxcms/revolution/pull/13980/files
CVE-2018-1000207
Неправильное использование phpthumb
$query = [
'ctx' => $ctx,
'cache_filename' => '../../' . $file,
‘thumbnailFormat' => 'php',
‘f' => 'php',
‘useRawIMoutput' => '1',
'src' => 'index.php',
'IMresizedData' => $payload,
'config_prefer_imagemagick' => '0'
];
$out = $modx . '/connectors/system/
phpthumb.php?' . http_build_query($query);
Причина
/* iterate through properties */

foreach ($this->config as $property => $value) {

$this->setParameter($property,$value);

}
Исправление
$allowed = array(

'src', 'new', 'w', 'h', 'wp', 'hp', 'wl', 'hl', 'ws', 'hs',

'f', 'q', 'sx', 'sy', 'sw', 'sh', 'zc', 'bc', 'bg', 'fltr',

'goto', 'err', 'xto', 'ra', 'ar', 'aoe', 'far', 'iar', 'maxb',
'down',

'md5s', 'sfn', 'dpi', 'sia', 'phpThumbDebug'

);

https://github.com/modxcms/revolution/pull/13979/files
2.6.5
Gallery
1.7.1
security@modx.com
Сообщество
История
• 2011 - Сайт modx.by

• 2012 - Drink Up MODX Belarus

• 2013 - MODX Club

• 2014 - Первый MODX Meetup Minsk

• 2015 - Второй MODX Meetup Minsk, международный

• 2016 - что-то делали тихонько

• 2017 - MODXpo 2017!

• 2018 - эту историю делаем мы!
Новый формат
• Настоящие митапы, встречи раз в 2 месяца

• Ежегодная международная конференция
МЫ ИЩЕМ
ДОКЛАДЧИКОВ
https://modx.by
facebook.com/modxby
vk.com/modxby
modxby
twitter.com/modxby
meetup.com/modxby
telegram/modxby
modx.pro
t.me/ru_modx
29 сентября 2018https://modx.moscow
MODX 3
История
И вклад Sterc
modx3.org
Required budget
Scope of the Project Plan € 134.540,-

Scope of Extra Features € 75.355,-

Total required € 209.895,-

Pledged funding
Subsidy € 34.176,-

MODX LLC € 63.200,-

STERC € 25.000,-

modmore € 13.500,-

Sponsors € 15.555,-

Donations € 4.735,46

Total pledged € 156.166,46
Login screen
Dashboard
UX improvements
Extract dependencies
"require": {

"php": ">=5.6",

"xpdo/xpdo": "^3.0@dev",

"league/flysystem": "^1.0",

"league/flysystem-aws-s3-v3": "^1.0",

"league/flysystem-cached-adapter": "^1.0",

"phpmailer/phpmailer": "^6.0",

"smarty/smarty": "^3.1",

"james-heinrich/phpthumb": "^1.7",

"erusev/parsedown": "^1.7",

"pelago/emogrifier": "^2.0"

},
Composer & Flysystem
composer create-project modx/revolution www 3.x-dev
Local, Azure, AWS S3, DigitalOcean Spaces, Dropbox, 

FTP, Memory, Null / Test, Rackspace, ReplicateAdapter, 

SFTP, WebDAV, PHPCR, ZipArchive
Template preview
Better upload
workflow
New emails
• Markdown для описаний и истории изменений в
пакетах

• Биндинг @EVAL удален, как небезопасный

• Более гибкое управление корзиной

• Возможность видеть элементы внутри категорий

• Улучшена логика статических элементов
Нам нужны
тестировщики!
И разработчики тоже
github.com/modxcms/revolution
Планы
• Автообновление (на базе UpgradeMODX от Bob Ray)

• Закончить рефакторинг (#13900)

• Реализовать новый установщик самого MODX (дизайн
есть).

• Протестировать имеющиеся 44 PR и выпустить 2.7 и
MODX 3 beta.
Что дальше?
• Разделение ядра на компоненты (core, cms, manager,
api и т.д.)

• Реализация REST-full API 

• Постепенный уход от ExtJS
https://github.com/modxcms/mab-recommendations
Иван Климчук
just google it!

More Related Content

Similar to MODX 3: Что нового?

CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
YiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляцииYiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляции
Paul Klimov
 
Yii: миграции и инсталляции
Yii: миграции и инсталляцииYii: миграции и инсталляции
Yii: миграции и инсталляции
Paul Klimov
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Symfoniacs
 
Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2
Ilyas Salikhov
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
Anatoly Sharifulin
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
Moscow.pm
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from JqueryMagento Dev
 
Top 10 problems supporting Magento customers
Top 10 problems supporting Magento customersTop 10 problems supporting Magento customers
Top 10 problems supporting Magento customers
aheadWorks
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном коде
Kolya Korobochkin
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
Alexander Makarov
 
Web весна 2012 лекция 4
Web весна 2012 лекция 4Web весна 2012 лекция 4
Web весна 2012 лекция 4Technopark
 
Enterprise Patterns in Magento
Enterprise Patterns in MagentoEnterprise Patterns in Magento
Enterprise Patterns in Magento
Vrann Tulika
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4Technopark
 
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
GeeksLab Odessa
 
Psgi app
Psgi appPsgi app
Psgi app
und3f
 

Similar to MODX 3: Что нового? (20)

CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
YiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляцииYiiConf: Миграции и инсталляции
YiiConf: Миграции и инсталляции
 
Yii: миграции и инсталляции
Yii: миграции и инсталляцииYii: миграции и инсталляции
Yii: миграции и инсталляции
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
 
Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
 
Top 10 problems supporting Magento customers
Top 10 problems supporting Magento customersTop 10 problems supporting Magento customers
Top 10 problems supporting Magento customers
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном коде
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Web весна 2012 лекция 4
Web весна 2012 лекция 4Web весна 2012 лекция 4
Web весна 2012 лекция 4
 
Enterprise Patterns in Magento
Enterprise Patterns in MagentoEnterprise Patterns in Magento
Enterprise Patterns in Magento
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
 
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
 
Psgi app
Psgi appPsgi app
Psgi app
 

MODX 3: Что нового?