English Version | Русская Версия
[1.24.1] - 2026-07-05
🛡️ Безопасность и SAST:
- WebUI (XSS Защита): Устранены множественные SAST-предупреждения и потенциальные XSS уязвимости. Все вызовы
innerHTMLс пользовательскими данными переведены на использование защищенногоDOMPurify.sanitize(..., { RETURN_DOM_FRAGMENT: true }). - Уникальные Идентификаторы: Использование небезопасного
Math.random()заменено на криптографически стойкий генераторwindow.crypto.getRandomValues()для предотвращения предсказуемости ID модальных окон. - Core / Subprocess: Усилена безопасность выполнения shell-команд в модуле
fail2banи агенте ноды (node.py). Потенциально небезопасные вызовыcreate_subprocess_shellиsubprocess.runпереведены на использованиеcreate_subprocess_execи статических списков аргументов для предотвращения внедрения вредоносного кода (Shell Injection).
🚀 Добавлено / Улучшено:
- Система Биллинга (Billing): Внедрена комплексная система отслеживания платежей. Для каждой ноды и мастер-сервера теперь можно задать стоимость аренды, выбрать валюту (€ / $ / ₽) и установить дату следующего платежа прямо из Telegram бота.
- Автоматические Напоминания (Billing): Фоновая задача автоматически определяет хостинг-провайдера ноды (через ip-api) и отправляет администратору предупреждение за 3 дня до окончания оплаченного периода.
- WebUI (Аренда и Модальные окна): В карточках нод и шапке веб-панели добавлены информативные бейджи с оставшимся количеством дней до оплаты. В модальном окне выведены подробности: провайдер, стоимость и точная дата платежа.
- БД (Автоматические Миграции): Внедрен механизм автоматических миграций через
aerich, гарантирующий корректное обновление схемы базы данных без потери данных. - Выбор Метода Пинга: В настройках WebUI добавлен переключатель метода измерения задержки:
ICMPилиHTTP(HEAD-запрос), что решает проблему блокировки ICMP-пакетов строгими файрволами. - Локализация и Чистота Языка: Проведена масштабная чистка интерфейса. В русской локализации удалено более 35 англицизмов («CPU/RAM/Disk» → «ЦП/ОЗУ/Диск», «Рестарт/Стоп» → «Перезапуск/Остановка», «Оффлайн» → «Не в сети» и т.д.). Для английской локализации переписаны всплывающие уведомления (тосты) на более естественный язык (например, «Lite version enabled» вместо «Light Version: ON»).
- Дизайн и Эстетика: Убраны избыточные зелёные подложки и обводки у активных элементов и бейджей в модальных окнах нод. Дизайн стал более минималистичным, строгим и современным.
🔧 Исправлено:
- WebUI (Прокрутка страницы): Исправлен неприятный баг в дашборде, из-за которого при закрытии окна деталей ноды на десктопных устройствах страница прокручивалась в самый верх. Теперь позиция скролла корректно сохраняется и восстанавливается на всех типах устройств.
- WebUI (Монитор Нод — SSE): Устранена проблема с каналом событий (SSE), обеспечивающим предварительную отрисовку сервисов — теперь данные отображаются моментально.
- WebUI (Защита DOMPurify): Обработчики кликов на кнопках биллинга переработаны во избежание их случайного удаления строгим анти-XSS фильтром
DOMPurify. - Core / Middlewares: Исправлена ошибка
AttributeError: 'int' object has no attribute 'tzinfo'вCallbackTTLMiddlewareпри обработке устаревших callback-запросов. - WebUI (Адаптивность): Раскладка страницы настроек переработана и теперь корректно масштабируется на узких мобильных экранах без обрезки контента.
- Ноды / Агент: Удалены неиспользуемые глобальные переменные в
node.py, устраняющие предупреждения линтера при импорте.
Full Changelog: 1.23.4...1.24.1