Николай Савин

Николай Савин

Был в сети 29 июня 2026, 12:35
Заказы принимаю
Здравствуйте. Способов взлома существует множество. И кстати можно войти в админку так, чтобы записи об этом не было.
Перечислю варианты
— Обиженный вами программист скрыто вошел и сделал плохое. Это можно сделать даже без пароля или с отключенной учетной записью (если он спец)
— Сайт старый. Есть дыры безопасности. Обновляться до свежих версий очень важно. Можно обновляться сразу до последней 2.8.*
— Встречаются компонент с дырами, на моей памяти Gallery был таким. Компоненты желательно обновлять до свежий версий.
— Бывают проблемные хостинги, которые не изолируют сайты и пропускают заразу от соседних сайтов.
— Бывает и собственная неаккуратность админов и менеджеров.

Итого. Обновите MODX. Обновите компоненты. Напишите какой у вас хостинг, может чего подскажем.
Есть антивирусы для сайтов. Часто встроены в вашу хостинг панель. Проверьте на вирусы. Это минимум.

Ну и если очень важный проект — лучше заказать обследование его на безопасность.
Пишется небольшой сниппет, который получает список «непустых» категорий. Перечень ID кладем в плейсхолдер.
Запускаем сниппет ДО вызова pdoMenu
В pdoMenu — дописываем параметр resources и вставляем в него плейсхолдер из шага выше
Здравствуйте. Готового решения конечно же нет в рамках MODX. Но они есть в мире PHP.

Для регулирования частоты запросов к API в PHP можно использовать библиотеку php-ratelimiter или symfony/rate-limiter. Оба инструмента предоставляют удобные способы контроля и ограничения количества запросов за определённый промежуток времени.

К примеру вот так используется php-ratelimiter
use RateLimiter\RateLimiter;
use RateLimiter\Storage\FileStorage;

$storage = new FileStorage('/path/to/storage');
$limiter = new RateLimiter($storage, 100, 3600); // 100 запросов в час

$key = 'user_ip_or_api_key'; // Уникальный идентификатор (например, IP или API-ключ)
if ($limiter->check($key)) {
    // Запрос разрешён
    $limiter->increment($key);
} else {
    // Лимит исчерпан
    http_response_code(429);
    echo 'Too Many Requests';
    exit;
}