Новости Joomla

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

‼️ 👩‍💻 Обновление безопасности для Tassos Framework!

7 января 2026 года греческому разработчику Тассосу Мариносу сообщили об уязвимости в системном плагине Tassos Framework, который входит в состав его расширений для Joomla.

⚠️ Проблема затрагивает следующие расширения:
- Convert Forms - конструктор форм обратной связи для Joomla
- EngageBox - конструктор всплывающих окон для Joomla
- Google Structured Data - пакет плагинов микроразметки для Joomla
- Advanced Custom Fields - пакет плагинов пользовательских полей (видео-сервисы, карты и иже с ними)
- Smile Pack - пакет расширений
- MailChimp Auto-Subscribe

Незамедлительно была проведена полная внутренняя проверка кода, внедрены дополнительные меры проверки и повышения безопасности, а также выпущены исправленные версии всех затронутых расширений. Проблема полностью решена.

👉 Суть уязвимости.
Уязвимость заключалась в том, как плагин Tassos Framework обрабатывал определенные AJAX-запросы через com_ajaxточку входа Joomla. При определенных условиях внутренняя функциональность фреймворка могла быть вызвана без надлежащих ограничений.

В худшем случае это могло позволить неавторизованному злоумышленнику читать файлы, доступные веб-серверу. Это также могло позволить удалять файлы с сервера при выполнении определенных условий.

При определенных обстоятельствах запросы к базе данных могли быть изменены для извлечения данных из базы данных Joomla. В совокупности эти возможности потенциально могли быть использованы для повышения уровня доступа и выполнения несанкционированного кода.

В настоящее время нет никаких доказательств того, что эта уязвимость была использована в реальных условиях.

Немедленно обновите расширения до безопасных версий (Joomla 4/5/6 | Joomla 3):
- Convert Forms - v5.1.1 / v.4.1.1
- EngageBox - v.7.1.1 / v,6,3,9
- Google Structured Data - v.6.1.1 / v.5.6.9
- Advanced Custom Fields - v.3.1.1 / v.2.8.10
- Smile Pack - v.2.1.1 / v.1.2.4.
- MailChimp Auto-Subscribe - v.5.1.1+ / v.5.0.4

Все указанные версии включают в себя релиз безопасности плагина Tassos Framework System Plugin v6.0.62.

Если у вас установлено несколько расширений Tassos, достаточно обновить только одно, чтобы применить патч. Однако всегда рекомендуется обновлять все расширения.

@joomlafeed

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

Проект IV: Обучение с подкреплением на основе отзывов переводчиков.
Joomla собирается использовать автоматический перевод документации. В каждом языке есть свои специфические слова, характерные для Joomla. Предполагается обучать языковые модели, используя обратную связь от переводчиков, чтобы постоянно улучшать качество переводов и учитывать специфические языковые особенности Joomla.

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

0 Пользователей и 1 Гость просматривают эту тему.
  • 43 Ответов
  • 16217 Просмотров
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А зачем второй пустой атрибут в getCmd?
Значение по умолчанию
Пример $view = $input->getCmd('view', 'myview');
если передана в REQUEST переменная view то вернет то что передали, если не передана то вернет myview
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Федор, но дальше ты уже не можешь использовать filter_input:
Код: php
$_REQUEST['task'] = 'add';

print_r($_REQUEST) выдаст add, но если в task до этого было установлено другое значение, то filter_input(INPUT_GET, 'task', FILTER_SANITIZE_STRING); выдаст не add, а другое значение.
filter_input не работает с $_REQUEST, для этого достаточно других функций
Код: php-brief
$_REQUEST['task'] = 'test';
//здесь если в массиве $_REQUEST не будет task ошибки не будет
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING);
var_dump($task);
$task = filter_var_array ( $_REQUEST, array('task'=> FILTER_SANITIZE_STRING));
var_dump($task);
die;
;D
подведу итог класс Jinput
Код: php-brief
$_REQUEST['task'] = 'test'; //записываем
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING); //считываем
//$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING); //90% всех благ
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вообщем ты предлагаешь работать с чистым PHP. Не гибко. Ты ограничен существующими методами PHP.

Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?

Плюс, какой бонус в том, чтобы использовать две строки вместо одной $input->getCmd('task', 'default')? И самое главное, как передавать значение по умолчанию?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А зачем второй пустой атрибут в getCmd?
А вот это уже "сахар" Женя
Иначе тебе как минимум пришлось использовать тернарный оператор или конструкцию if  else
Код: php-brief
//если a не определена, равна Null, "" выведет 10
$a = $a ? $a: 10;
var_dump($a);
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?
Со значением Саша ошибся, получать данные. Это не большая проблема ответ выше
А фильтров больше, причем можешь сам писать, а когда есть функция обратного вызова, то тут вообще руки развязаны
http://www.php.net/manual/ru/filter.filters.php
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Цитировать
А фильтров больше, причем можешь сам писать
То есть все равно придется создавать какой-то класс-билиотеку, который будет содержать в себе эти фильтры. Вообщем не знаю, но твое предложение мне лично кажется очень спорным решением.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Зачем создавать библиотеку она ведь уже есть. Ведь все равно ты фильтры и наименования в памяти не хранил. Либо в доки смотрел, или редактор подсказал. Дело в том, что функции нативные и не требуют подключения ядра Joomla
Классы можно эти не использовать (ведь они и не мешают) а вот в формах там да надо будет думать, чтобы расширить или переделать
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Федор, я всеравно не понимаю зачем писать много когда можно писать мало. Из-за призрачного выигрыша в скорости? Призрачный он потому, что самые тяжелые операции - выборка данных и т.п., они занимают львиную долю времени отдачи страницы, При ускорении в 2 раза, даже в бесконечное число раз операции фильтрации, в общей массе прирост производительности будет в пределах погрешности измерений, т.е. ничтожен. Никакого смысла мудрить в этом месте нет.
Плюс к тому есть стандарты программирования и под разные фреймворки они разные. Для легкой поддержки кода другими программистами необходимо придерживаться стандартов, если каждый будет писать как придется, программисту, получившему в поддержку сию кашу, останется только застрелиться.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Arkadiy, не как придется, а на чистом языке. Человек знающий php , будет читать его, понимать с легкостью без знаний фреймворка. И почему это много, оно работает без использования постороннего кода
Код: php-brief
$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING);
если нужно получить значение option для условий то почему бы  и нет. И это не каша ибо каждая переменная здесь названа логично и понятливо. Если полностью читал топик то в Google я им привел ***код который они из версии в версию включают и это из-за того развитого бюрократизма их команды. Проект с миллионным бюджетом, жадничают нанять профессионалов для рефакторинга. Отдать проект на аутсорсинг.
А тыкаешь носом в код, так напиши в баг трекер. Пусть платят за ошибки быстрее соберут. Это политика нормальных, крупных компаний. Которые ценят своих поклонников их время и знания.
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Понятно, как бы мы не спорили, все останутся при своих привычках.  Но дискуссия интересная. Какие-то весомые аргументы в пользу фреймворка есть? Я пока только два вижу.
Это более безопасный код у начинающих (например, юзай JFactory::getSession(); вместо $_SESSION[]; и не переживай про переопределение кем-то глобальных массивов);
И второй это возможность прописать собственные параметрыв в общие классы фреймворка (что обеспечивает  интеграцию между расширениями).
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Федор, ну никто же не мешает использовать filter_input. Используй на здоровье, но JInput при этом грохать нет смысла, у него все же есть два плюса перед filter_input:
- позволяет получать переменные с установкой значения по умолчанию
- позволяет работать с измененными супермассивами
*

KoreshS

  • Новичок
  • 9
  • 1 / 0
Между прочим разработчики бы могли бы и конструкцию сделать
Код
JFactory::getInput();
Ведь на то он и Factory(фабрика), чтобы основные функции в себе содержать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
application содержит в себе input. Когда надо оба пишу так:
Код: php
$app = JFactory::getApplication();
$var = $app->input->getInt('var', 0);
Если нужен только input, то
Код: php
$input = JFactory::getApplication()->input;
$var = $input->getInt('var', 0);
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Я всегда делаю $app = JFactory::getApplication();
Ну а потом если нужен input то $app->input и т.д Если в редакторе нормальная подсветка кода, то читаеться легко.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Использование JFactory в подключаемых php файлах

Автор oopros

Ответов: 3
Просмотров: 2664
Последний ответ 29.11.2016, 15:25:12
от b2z
Вопрос по PROFILER и JFactory

Автор Haybul

Ответов: 2
Просмотров: 2133
Последний ответ 02.08.2014, 04:33:57
от Haybul
[Решено] Что лучше, что правильно JHtml::метод(параметры) или JHtml::_(метод, параметры)?

Автор MansEL

Ответов: 7
Просмотров: 2069
Последний ответ 01.07.2014, 18:24:15
от b2z
Joomla 3.1 не находит JRequest. Не работает AJAX!

Автор justquestion

Ответов: 2
Просмотров: 3821
Последний ответ 11.10.2013, 12:42:08
от Aleks.Denezh
Как прикрепить файл к письму через форму input type="file"?

Автор DiEV

Ответов: 15
Просмотров: 9931
Последний ответ 09.06.2013, 10:02:10
от Aleks.Denezh