Новости 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 Гость просматривают эту тему.
  • 2 Ответов
  • 3242 Просмотров
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Ускоряем Joomla в 1000 раз ?
« : 03.11.2011, 15:17:16 »
вот на хабре есть такое, никто не пробовал?

"Данные рекомендации будут полезны, если:
— у вас или вашего клиента есть вебсайт на Joomla
— ваш сайт состоит в основном из статического контента
— вам недостаточно получать от сервера 20 запросов в секунду, вам надо 2000-3000.
— вы задумались насколько время отклика вебсайта влияет на рейтинг в Google. Немного информации на эту тему тут http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html

Joomla работает под PHP, даже если используется кеширование на уровне модулей Joomla, все равно используется PHP и происходит рендеринг страницы при каждом обращении. Это означает, что скорости в 2000 запросов в секунду будут недостижимы. Заставим Joomla сохранять копию сгенерированной страницы на диск, а Apache считывать эту копию напрямую, минуя PHP для всех последующих пользователей. Это старый добрый подход, который кстати может быть применен на других CMS, но только для статического контента. На Joomla используем тип Article, который как раз и представляет страницу со статическим контентом.

Создаем новый плагин для Joomla, всего два файла:

htmlcache.xml — файл описания плагина

Код:
 
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="system">
<name>System - HTML cache</name>
<author></author>
<creationDate>March 2010</creationDate>
<copyright></copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<version>0.6</version>
<description>Creates static HTML versions of content pages. It will only cache SEO URLs, *.php pages will not be cached. </description>
<files>
<filename plugin="htmlcache">htmlcache.php</filename>
</files>
<params>
<param name="html_cache_dir" type="text" default="" label="HTML Cache dir" description="Set the Joomla HTML cache directory."/>
<param name="cache_view_1" type="text" default="article" label="View to cache 1" description="Set view type to be cached. Only HTTP content can be cached."/>
<param name="cache_view_2" type="text" default="" label="View to cache 2" description="Set view type to be cached. Only HTTP content can be cached."/>
<param name="cache_view_3" type="text" default="" label="View to cache 3" description="Set view type to be cached. Only HTTP content can be cached."/>
<param name="cache_view_4" type="text" default="" label="View to cache 4" description="Set view type to be cached. Only HTTP content can be cached."/>
</params>
</install>

Теперь создаем обработчик события onAfterRender. Задача обработчика перехватывать только статьи типа Article, создавать в каталоге html_cache_dir структуру из папок в соответствии со структурой вебсайта и сохранять туда контент страницы. Дополнительно перед сохранением можно прогонять страницу через оптимизатор HTML (например этот Minify_HTML (http://code.google.com/p/minify/source/browse/trunk/min/lib/Minify/HTML.php)), которые оптимизирует размер страницы, убирая лишние комментарии и пробелы и тем самым увеличивая эффективность работы вебсайта.

Отдельно отметим, что данный код работает для вебсайтов с включенным SEO и не кеширует страницы с любыми расширениями типа php или HTML. Кешироваться будут только URLs вида:
/about
/software/catalog


Код придется поправить, если вы не используете SEO.

htmlcache.php — непосредственно код.

Код:

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgSystemHtmlcache extends JPlugin
{
function plgSystemHtmlcache(& $subject, $config)
{
parent::__construct($subject, $config);
}

function onAfterRender()
{
global $mainframe;
if($mainframe->isAdmin()) { return; } //do not cache admin pages

$document =& JFactory::getDocument();
$doctype = $document->getType();
$user =& JFactory::getUser();
if($user->get('guest')!= 1) { return; } //Only cache for non logged in users
if ( $doctype != 'html' ) { return; } // Only render for HTML output
$html_cache_dir=$this->param('html_cache_dir');
if($html_cache_dir=='') { return; } //Exit if no html_cache_dir specified
if(!file_exists($html_cache_dir)) { mkdir($html_cache_dir); } //try to create folder if it does not exist
// Only render for provided views
if ((JRequest :: getVar('view'))!= $this->param('cache_view_1') &&
(JRequest :: getVar('view'))!= $this->param('cache_view_2') &&
(JRequest :: getVar('view'))!= $this->param('cache_view_3') &&
(JRequest :: getVar('view'))!= $this->param('cache_view_4')) { return; }
$relativePath=$this->request_uri();
if (strpos($relativePath, '.')) { return; } //exit if found DOT in the request_uri, we do not want to cache anything other than SEO
$relativePath=str_replace('/',DS,$relativePath);
//$body = Minify_HTML::minify(JResponse::getBody());
$body =JResponse::getBody();
$fullPath=$html_cache_dir.$relativePath;
$parts=explode(DS,$relativePath);
$currentPath=$html_cache_dir.DS;

foreach( $parts as $p){
if($p==''){
continue;
}
$currentPath.=$p;
if((!file_exists($currentPath))&&(!is_file($currentPath))){
mkdir($currentPath);
}
$currentPath.=DS;
}//end for each
$indexFile=$currentPath.DS.'index.html';
if(!file_exists($indexFile)){ $this->writeToFile($indexFile,$body); }
}

function writeToFile($fileName,$content){
$handle=fopen($fileName,'w');
fwrite($handle,$content);
fclose($handle);
}

function request_uri(){
if (isset($_SERVER['REQUEST_URI'])){
$uri = $_SERVER['REQUEST_URI'];
}else{
if (isset($_SERVER['argv'])){
$uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][];
}else{
$uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING'];
}
}
return $uri;
}

function param($name){
static $plugin,$pluginParams;
if (!isset( $plugin )){
$plugin =& JPluginHelper::getPlugin('system', 'htmlcache');
$pluginParams = new JParameter( $plugin->params );
}
return $pluginParams->get($name);
}
}

Оба файла можно закачать в /plugins/system или поместить в htmlcache.zip и установить через административный интерфейс Joomla. После установки задаем html_cache_dir=/opt/www/html/cache/content в настройках плагина и включаем плагин (Enabled: Yes).
При первом обращении к странице в папке /opt/www/html/cache/content должны появиться папки и файлы — это означает что плагин работает и все в порядке с разрешениями на запись.

Осталось заставить Apache отдавать эти файлы без обращения к PHP коду. В .htaccess, сразу после RewriteEngine on добавляем:
RewriteCond %{REQUEST_URI} (/|/[^.]*)$ [NC]
RewriteCond %{DOCUMENT_ROOT}/cache/content/%{REQUEST_URI}/index.html -f
RewriteRule (.*) /cache/html/$1/index.html [L]

Перезапускаем apache и проверяем через браузер. Для того чтобы проверить производительность запустим (под Linux):
ab -n 10000 -c 50 -k www.azati.com/
...
Concurrency Level: 50
Time taken for tests: 4.294054 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 10000
Total transferred: 71155755 bytes
HTML transferred: 67695750 bytes
Requests per second: 2328.80 [#/sec] (mean)
Time per request: 21.470 [ms] (mean)
Time per request: 0.429 [ms] (mean, across all concurrent requests)
Transfer rate: 16182.38 [Kbytes/sec] received
...

Тест лучше запускать несколько раз, чтобы обеспечить «прогрев» для Apache. Запускать можно на самом вебсервере, чтобы исключить задержки в сети или по сети, но числа будут другие.

www.azati.com замените адресом своего сервера, www.azati.com можно тестировать для сравнения. Не боимся, сайт не падает и статистика Google не портится.

К сожалению, скорость не дается даром:
— Пропадает возможность редактировать статьи (Articles) через Joomla front-end, только через административный интерфейс.
— После редактирования статьи, необходимо очищать кеш через административный интерфейс Tools -> Сlean cache

Взвешиваем и решаем оправдан ли подход для вашего вебсайта.

P.S. Если у вас есть динамический контент, можно организовать периодическую очистку кеша (например раз в час), и тем самым получить быстрый сайт, который достаточно часто обновляется."
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Ускоряем Joomla в 1000 раз ?
« Ответ #1 : 03.11.2011, 16:32:01 »
А не проще ли включить проксирующее кэширование в nginx?
Достаточно пары строчек, место для кэша и оптимально подбираем колво процессов в зависимости от оперативки.
В отдельных случаях можно /tmp поместить в оперативку итп
*

coolplaymaster

  • Захожу иногда
  • 62
  • 1 / 0
  • Быстро, весело, спортивно.
Re: Ускоряем Joomla в 1000 раз ?
« Ответ #2 : 21.02.2012, 14:56:23 »
У меня этот плагин подвесил сайт, возможно он конфликтует с gzip или с webositespeed
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla накешировала 200Mb в директорию cache/page при отключенном кешировании, что за ...?

Автор Marygold

Ответов: 12
Просмотров: 9444
Последний ответ 27.09.2023, 09:23:54
от XFQDesNik
Joomla и Amazon S3

Автор Ghost_370

Ответов: 14
Просмотров: 14296
Последний ответ 07.04.2019, 09:38:02
от powerful888
Соц.иконки добавить, Joomla 1.5.26

Автор nuon

Ответов: 1
Просмотров: 9687
Последний ответ 04.03.2018, 21:34:56
от nuon
Как сделать JSON-LD микроразметку для Joomla 1.5

Автор Amigo9876

Ответов: 1
Просмотров: 9145
Последний ответ 05.01.2018, 21:54:43
от krot
Joomla 1.5.26 и мета теги

Автор SLdieR11

Ответов: 3
Просмотров: 5457
Последний ответ 17.10.2017, 10:53:54
от SeBun