Forwarded from RISH — панель управления сервером и сайтами
Вышел RISH 2.8.0: изоляция PHP, защита CRON и SFTP
Этот релиз появился после разбора реального взлома.
Сайт был скомпрометирован через уязвимость в установленной версии шаблона на базе Helix.
После очистки мы проверили, как злоумышленник пытался закрепиться на сервере.
Он добавил вредоносные задания в пользовательский CRON и собственный публичный ключ в
Аудит показал, что нужно точнее разделить полномочия PHP-процесса и системного пользователя.
Главный принцип RISH 2.8.0:
PHP должен обслуживать сайт, но не управлять способом входа на сервер и не создавать себе постоянные задания.
Что изменилось?
🔒 Изоляция PHP-FPM
Для PHP-FPM добавлены ограничения systemd. Процесс сайта больше не получает доступ к домашним каталогам, системным устройствам, общим временным файлам, параметрам и журналам ядра, модулям, cgroups и механизмам повышения привилегий.
Ограничения действуют и для программ, запускаемых из PHP.
🔐 Учётные данные под контролем root
Пароли системного пользователя, MariaDB и администратора сайта перенесены из
Заодно вместо старого неочевидного формата появился понятный файл с отдельными секциями и комментариями.
⏱ Защита CRON
Изменять пользовательские CRON-задания теперь может только root. Существующие задания продолжают работать, а администратор по-прежнему управляет ими через меню RISH.
Код сайта больше не сможет самостоятельно назначить себе повторный запуск.
🔑 Защита SFTP
Публичные ключи перенесены из домашнего каталога пользователя в
При обновлении RISH переносит найденные ключи, не добавляя одинаковые строки, и показывает их отпечатки для проверки.
SFTP-сессии теперь работают только по ключу, без терминала, forwarding, пользовательских SSH-сценариев и произвольных команд.
🧩 Обновления расширений Joomla
В аудите Joomla появилась проверка доступных обновлений компонентов, модулей, плагинов и шаблонов.
RISH использует штатную Joomla CLI-команду и показывает установленную и доступную версии. Обновления автоматически не устанавливаются.
✅ Проверка и откат
Миграция выполняется последовательно. Новые параметры PHP-FPM и SSH проверяются до окончательного применения, а при ошибке RISH восстанавливает предыдущую конфигурацию.
Команда
Подробно о причинах и всех изменениях RISH 2.8.0:
https://rish.su/blog/rish-2-8-0-izolyatsiya-php-zashchita-cron-i-sftp
Этот релиз появился после разбора реального взлома.
Сайт был скомпрометирован через уязвимость в установленной версии шаблона на базе Helix.
После очистки мы проверили, как злоумышленник пытался закрепиться на сервере.
Он добавил вредоносные задания в пользовательский CRON и собственный публичный ключ в
authorized_keys. Это позволило бы вернуть доступ даже после удаления заражённых файлов.Аудит показал, что нужно точнее разделить полномочия PHP-процесса и системного пользователя.
Главный принцип RISH 2.8.0:
PHP должен обслуживать сайт, но не управлять способом входа на сервер и не создавать себе постоянные задания.
Что изменилось?
🔒 Изоляция PHP-FPM
Для PHP-FPM добавлены ограничения systemd. Процесс сайта больше не получает доступ к домашним каталогам, системным устройствам, общим временным файлам, параметрам и журналам ядра, модулям, cgroups и механизмам повышения привилегий.
Ограничения действуют и для программ, запускаемых из PHP.
🔐 Учётные данные под контролем root
Пароли системного пользователя, MariaDB и администратора сайта перенесены из
/home/<user>/.pass.txt в /root/rish/credentials/<user>.Заодно вместо старого неочевидного формата появился понятный файл с отдельными секциями и комментариями.
⏱ Защита CRON
Изменять пользовательские CRON-задания теперь может только root. Существующие задания продолжают работать, а администратор по-прежнему управляет ими через меню RISH.
Код сайта больше не сможет самостоятельно назначить себе повторный запуск.
🔑 Защита SFTP
Публичные ключи перенесены из домашнего каталога пользователя в
/etc/ssh/authorized_keys/<user> и принадлежат root.При обновлении RISH переносит найденные ключи, не добавляя одинаковые строки, и показывает их отпечатки для проверки.
SFTP-сессии теперь работают только по ключу, без терминала, forwarding, пользовательских SSH-сценариев и произвольных команд.
🧩 Обновления расширений Joomla
В аудите Joomla появилась проверка доступных обновлений компонентов, модулей, плагинов и шаблонов.
RISH использует штатную Joomla CLI-команду и показывает установленную и доступную версии. Обновления автоматически не устанавливаются.
✅ Проверка и откат
Миграция выполняется последовательно. Новые параметры PHP-FPM и SSH проверяются до окончательного применения, а при ошибке RISH восстанавливает предыдущую конфигурацию.
Команда
rish check получила проверки новой модели безопасности.Подробно о причинах и всех изменениях RISH 2.8.0:
https://rish.su/blog/rish-2-8-0-izolyatsiya-php-zashchita-cron-i-sftp
👍2
Sergey Tolkachyov
Спустя время решил проверить компонент WT LLMs в действии. ChatGPT.
А ещё компонент приняли в Joomla Extensions Directory: https://extensions.joomla.org/extension/site-management/seo-a-metadata/wt-llms/
@webtolkru
#joomla #ai #llm #seo
А ещё компонент приняли в Joomla Extensions Directory: https://extensions.joomla.org/extension/site-management/seo-a-metadata/wt-llms/
@webtolkru
#joomla #ai #llm #seo
🔥4
Forwarded from Joomla Feed (Sergey Tolkachyov)
В полном списке расширений (раздел
Система -> Расширения -> Управление) был замечен фильтр расширений: "основное - сторонее". Этот фильтр позволяет быстро посмотреть какие сторонние расширения числятся в Joomla, что особенно полезно в свете участившихся в последнее время проверок на прочность Joomla-сайтов.@joomlafeed
#joomla
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3💯1
Forwarded from Joomla для разработчиков
🚨 AJAX - главная «слепая зона» безопасности
В 2026 году продолжается волна атак на Joomla-сайты. Ботнеты массово сканируют сети в поиске одной и той же уязвимости — отсутствия проверки прав доступа в AJAX-обработчиках.
Почему com_ajax стал идеальным «черным ходом» для хакеров и как защитить свой код? Разбираем анатомию ошибки.
🔍 Как устроена уязвимость?
com_ajax создавался как легкий маршрутизатор, чтобы плагины и модули могли обрабатывать AJAX-запросы без создания собственных роутов.
Главный капкан архитектуры — com_ajax НЕ проверяет авторизацию за вас.
Разработчики часто путают три разных уровня защиты:
1. CSRF-токен (Session::checkToken()) — проверяет только то, что запрос отправлен с вашего сайта. Но он НЕ проверяет, кто его отправил.
2. Аутентификация ($user->guest) — проверяет, залогинен ли пользователь.
3. Авторизация (ACL / authorise()) — проверяет, имеет ли пользователь право выполнять действие.
💥 Реальные инциденты и уязвимости в Joomla:
• Astroid Framework: Отсутствие авторизации в AJAX-обработчиках позволяет гостям и пользователям с минимальными правами вызывать служебные функции.
• Novarian Framework: Аналогичные «слепые зоны» в AJAX-маршрутизации, открывающие доступ к выполнению кода без проверки ролей.
• JoomShaper Helix3 (Волна взломов AntonKill): Массовый дефейс Joomla-сайтов через неаутентифицированный AJAX-эндпоинт фреймворка шаблона.
• AcyMailing: Повышение привилегий из-за отсутствия проверки прав во внутреннем роутере (уязвимость затрагивает Joomla 9.11.0 – 10.8.1).
❌ Как делать НЕЛЬЗЯ (уязвимый код):
(Проверен только CSRF, но любой гость может удалить элемент).
✅ Как ДОЛЖНО быть (безопасный код):
🛠 Чек-лист базовой проверки:
• Если вы пишете код: Никогда не полагайтесь только на com_ajax. Всегда вызывайте $user->authorise() перед выполнением действия.
• Если вы администрируете сайты: Регулярно обновляйте фреймворки шаблонов (Astroid, Novarian, Helix) и сторонние расширения.
• Проверьте старый код: Наличие checkToken() в AJAX-хендлере не делает его безопасным!
📖 Подробную хронологию разбора этой уязвимости читайте в статье на mySites.guru.
💬 Проверяете ACL на каждом AJAX-вызове в своих компонентах и плагинах?
#joomla #php #security #webdev #cms #backend
В 2026 году продолжается волна атак на Joomla-сайты. Ботнеты массово сканируют сети в поиске одной и той же уязвимости — отсутствия проверки прав доступа в AJAX-обработчиках.
Почему com_ajax стал идеальным «черным ходом» для хакеров и как защитить свой код? Разбираем анатомию ошибки.
🔍 Как устроена уязвимость?
com_ajax создавался как легкий маршрутизатор, чтобы плагины и модули могли обрабатывать AJAX-запросы без создания собственных роутов.
Главный капкан архитектуры — com_ajax НЕ проверяет авторизацию за вас.
Разработчики часто путают три разных уровня защиты:
1. CSRF-токен (Session::checkToken()) — проверяет только то, что запрос отправлен с вашего сайта. Но он НЕ проверяет, кто его отправил.
2. Аутентификация ($user->guest) — проверяет, залогинен ли пользователь.
3. Авторизация (ACL / authorise()) — проверяет, имеет ли пользователь право выполнять действие.
💥 Реальные инциденты и уязвимости в Joomla:
• Astroid Framework: Отсутствие авторизации в AJAX-обработчиках позволяет гостям и пользователям с минимальными правами вызывать служебные функции.
• Novarian Framework: Аналогичные «слепые зоны» в AJAX-маршрутизации, открывающие доступ к выполнению кода без проверки ролей.
• JoomShaper Helix3 (Волна взломов AntonKill): Массовый дефейс Joomla-сайтов через неаутентифицированный AJAX-эндпоинт фреймворка шаблона.
• AcyMailing: Повышение привилегий из-за отсутствия проверки прав во внутреннем роутере (уязвимость затрагивает Joomla 9.11.0 – 10.8.1).
❌ Как делать НЕЛЬЗЯ (уязвимый код):
Session::checkToken() or die('Invalid Token');
$input = Factory::getApplication()->getInput();
$this->deleteItem($input->getInt('id'));(Проверен только CSRF, но любой гость может удалить элемент).
✅ Как ДОЛЖНО быть (безопасный код):
Session::checkToken() or die('Invalid Token');
$app = Factory::getApplication();
$user = $app->getIdentity();
if (!$user->authorise('core.manage', 'com_yourcomponent')) {
throw new Exception('Access Denied', 403);
}
$this->deleteItem($app-> getInput()->getInt('id'));🛠 Чек-лист базовой проверки:
• Если вы пишете код: Никогда не полагайтесь только на com_ajax. Всегда вызывайте $user->authorise() перед выполнением действия.
• Если вы администрируете сайты: Регулярно обновляйте фреймворки шаблонов (Astroid, Novarian, Helix) и сторонние расширения.
• Проверьте старый код: Наличие checkToken() в AJAX-хендлере не делает его безопасным!
📖 Подробную хронологию разбора этой уязвимости читайте в статье на mySites.guru.
💬 Проверяете ACL на каждом AJAX-вызове в своих компонентах и плагинах?
#joomla #php #security #webdev #cms #backend
mySites.guru
AJAX Endpoints: CMS Security Blind Spot | mySites.guru
Five AJAX and API vulnerabilities hit Joomla and WordPress in March 2026, all sharing one root cause. Here is what went wrong and how to protect your sites.
🙏1
Forwarded from Евгений Сивоконь. Блог
Обновление плагинов оплаты ЮKassa для RadicalMart и Phoca Cart 💳
Выпущены версии плагинов, обеспечивающих совместимость с актуальным ПО и свежими версиями Интернет-магазинов для Joomla.
📌 ЮKassa для RadicalMart 2.2.0
— Обеспечение совместимости с Joomla 6
Страница плагина
📌 ЮKassa для Phoca Cart 2.0.3
— Исправление ошибки округления цены со скидкой
— Обеспечение совместимости с Joomla 6
Страница плагина
Ну что же, гештальт закрыт ☀️
Выпущены версии плагинов, обеспечивающих совместимость с актуальным ПО и свежими версиями Интернет-магазинов для Joomla.
📌 ЮKassa для RadicalMart 2.2.0
— Обеспечение совместимости с Joomla 6
Страница плагина
📌 ЮKassa для Phoca Cart 2.0.3
— Исправление ошибки округления цены со скидкой
— Обеспечение совместимости с Joomla 6
Страница плагина
ЮKassa (ранее Яндекс Касса) — один из самых популярных в России сервисов для приема платежей в интернет-магазинах и онлайн-школах. Предлагается Сбером в качестве Интернет-эквайринга для сайтов.
Новые клиенты могут получить премиум тариф со ставками 2,8% по методам: банковские карты, SberPay, кошелек ЮMoney, Alfa Pay и «Покупки в кредит» от СберБанка без ограничений по сроку.
Ну что же, гештальт закрыт ☀️
👍2
Не всё, что можно автоматизировать, стоит автоматизировать.
Интересные мысли здесь, и сам автор интересный.
https://pimenov.ai/articles/ne-vsyo-stoit-avtomatizirovat/
#ии
Интересные мысли здесь, и сам автор интересный.
Недавно я прочитал в Aeon эссе про skill nostalgia, тоску по навыку и ремеслу. По работе, где человек не просто выполняет операцию, а постепенно становится мастером. И вдруг увидел, что эта тоска сегодня повсюду: люди снова хотят печь хлеб, крутить керамику, писать от руки, снимать на плёнку, чинить вещи своими руками.
Со стороны это выглядит как мода на медленную жизнь. Но за этим стоит чувство поглубже: человеку не хватает работы, в которой он сам становится лучше.
Цифровая среда чаще устроена наоборот. Она дробит работу на короткие операции, съедает длинное внимание, ускоряет переключения и превращает меня в диспетчера процессов. ИИ эту тенденцию может разогнать до предела. Он убирает рутину, и это прекрасно. Но он же убирает сопротивление, через которое растёт навык, и вот это уже опасно.
https://pimenov.ai/articles/ne-vsyo-stoit-avtomatizirovat/
#ии
Модуль выводит метки из различных компонентов на Яндекс.Карты. На данный момент выводятся только материалы Joomla. Используется API 3.0 Яндекс.Карт. Поддерживается Joomla 5 и старше.
👉 v.2.3.4. Что нового?
Стандартные всплывающие окна переведены на новый UI Яндекс.Карт. На мобильных устройствах они открываются как нижняя фиксированная панель и не выходят за пределы экрана; стили вынесены в CSS-классы и переменные для переопределения в шаблоне.
Страница расширения
@webtolkru
#joomla #yandex #яндекс #яндекскарты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Давно я таким не занимался, а тут пришлось. Нередко сеошники измудряются и добавляют иконки как только могут, стараясь добиться результата. В то время как в Joomla есть прекрасный и понятный механизм добавления фавиконок - метод
addHeadLink() в шаблоне.$this->addHeadLink(
href: '/favicon.svg',
relation: 'icon',
relType: 'rel',
attribs: [
'type' => 'image/svg+xml',
'sizes' => 'any',
]
);
$this->addHeadLink(
href: '/favicons/favicon-32x32.png',
relation: 'icon',
relType: 'rel',
attribs: [
'type' => 'image/png',
'sizes' => '32x32',
]
);
$this->addHeadLink(
href: '/favicons/favicon-16x16.png',
relation: 'icon',
relType: 'rel',
attribs: [
'type' => 'image/png',
'sizes' => '16x16',
]
);
$this->addHeadLink(
href: '/favicons/apple-touch-icon.png',
relation: 'apple-touch-icon',
relType: 'rel',
attribs: [
'sizes' => '180x180',
]
);
$this->addHeadLink(
href: '/favicon.ico',
relation: 'icon',
relType: 'rel',
attribs: [
'type' => 'image/vnd.microsoft.icon',
]
);
$this->addHeadLink(
href: '/site.webmanifest',
relation: 'manifest',
relType: 'rel'
);
В PHP 8+ удобно использовать именованные аргументы и тогда сразу всё встаёт на свои места и становится понятно что за аргумент и зачем он нужен.
Традиционно Joomla собирает массивы в атрибуты, где ключ массива - это имя атрибута, а значение массива становится массивом атрибута. Удобно.
@webtolkru
#joomla #шаблоны #вёрстка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from Joomla Feed (Sergey Tolkachyov)
Это приложение для Windows / MacOS / Linux для того, чтобы работать с Joomla не заходя в браузер. Поддерживается неограниченное количество сайтов. Также декларируется возможность работы с ИИ.
Grafida использует TinyMCE для работы, поэтому любители ядра Joomla почувствуют себя в своей тарелке сразу. Загрузка изображений и медиа-контента происходит так же в привычном интерфейсе.
Независимо от того, управляете ли вы одним сайтом или двадцатью, Grafida объединяет все данные в одном настольном приложении.
Работать можно везде, не ожидая появления Wi-Fi. Пишите черновики статей в поезде, в кафе, в самолете или где угодно, где вас посетит вдохновение. Когда вы снова окажетесь в сети, просто синхронизируйте их с Joomla.
Приложение можно скачать с GitHub. Разработчик - греческая студия Joomla-разработки Akeeba.
🧐 Вообще это любопытное решение, но всегда важно, чтоб созданный инструмент поддерживался и развивался. Тогда на этот инструмент можно полагаться как на надёжный и рассчитывать на него как на долгосрочный. К примеру, на момент публикации данной заметки указано, что
This software does not work on Windows 11 Home.
Это скорее всего связано с тем, что в Windows 11 внедрена строгая проверка сертификатов издателей программного обеспечения. А для того, чтобы этот сертификат получить нужно заплатить Microsoft сумму, которая для Windows-разрабочтика в целом будет оправдана (ведь это же его хлеб). Но для веб-разработчика, который создал бесплатное Win-приложение скорее как эксперимент и пробовал силы ИИ-разработки, эти траты лишние. Поэтому на Win 11 оно работать не будет (или будет, но отключить проверки сертификатов нужно). Дело в том, что простые пользователи, для которых оно создано - не будут разбираться, скорее всего, в этих тонкостях и этим потенциальная аудитория приложения сразу ограничивается.
Ссылки:
- Новость на сайте разработчика
- Статья в блоге Брайна Тимена (ко-фаундер Joomla)
- GitHub приложения
@joomlafeed
#joomla
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from RISH — панель управления сервером и сайтами
🔐 Сертификаты Минцифры без головной боли: новый скрипт для пользователей RISH
Российские банки и интернет-сервисы постепенно переходят на TLS-сертификаты Национального удостоверяющего центра Минцифры.
Если сервер не доверяет этой цепочке, соединение оборвётся ещё до обращения к API. В результате могут перестать работать регистрация платежей, проверка статусов, возвраты и запросы ботов к MAX. В журналах при этом появятся ошибки вроде certificate verify failed.
🔐 Мы позаботились о пользователях RISH!
Теперь вам не нужно ломать голову над тем, как установить сертификаты Минцифры на сервер с AlmaLinux.
Мы создали специальный скрипт RISH, который возьмёт всю техническую работу на себя:
— проверит системное хранилище сертификатов;
— скачает официальный набор;
— проверит сроки действия и SHA-256-отпечатки;
— определит, каких сертификатов не хватает;
— протестирует соединения с Альфа-Банком, Т-Банком и MAX;
— после вашего подтверждения установит недостающие сертификаты и повторит проверку.
Никакой ручной распаковки архивов, поиска нужных файлов и разбирательств с цепочками доверия. Запускаете скрипт — и он всё делает за вас.
Подробности, инструкция и команда запуска — в нашей новой статье:
https://rish.su/rukovodstvo/sertifikaty-mintsifry-na-almalinux-i-rish-kak-proverit-i-ustanovit-na-vash-server
Российские банки и интернет-сервисы постепенно переходят на TLS-сертификаты Национального удостоверяющего центра Минцифры.
Если сервер не доверяет этой цепочке, соединение оборвётся ещё до обращения к API. В результате могут перестать работать регистрация платежей, проверка статусов, возвраты и запросы ботов к MAX. В журналах при этом появятся ошибки вроде certificate verify failed.
🔐 Мы позаботились о пользователях RISH!
Теперь вам не нужно ломать голову над тем, как установить сертификаты Минцифры на сервер с AlmaLinux.
Мы создали специальный скрипт RISH, который возьмёт всю техническую работу на себя:
— проверит системное хранилище сертификатов;
— скачает официальный набор;
— проверит сроки действия и SHA-256-отпечатки;
— определит, каких сертификатов не хватает;
— протестирует соединения с Альфа-Банком, Т-Банком и MAX;
— после вашего подтверждения установит недостающие сертификаты и повторит проверку.
Никакой ручной распаковки архивов, поиска нужных файлов и разбирательств с цепочками доверия. Запускаете скрипт — и он всё делает за вас.
Подробности, инструкция и команда запуска — в нашей новой статье:
https://rish.su/rukovodstvo/sertifikaty-mintsifry-na-almalinux-i-rish-kak-proverit-i-ustanovit-na-vash-server
👍3