TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Joomla для разработчиков

25 Jul, 06:57

Открыть в Telegram Поделиться Пожаловаться

🚨 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).

❌ Как делать НЕЛЬЗЯ (уязвимый код):

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
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.

495 4 22
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot