Редактор темы

Реклама
Реклама
Реклама
Реклама

DLEToolbar — панель администратора прямо на сайте

  • Автор темы Автор темы iCooLER
  • Дата начала Дата начала

iCooLER

Кодер
Регистрация
13 Сен 2016
Сообщения
429
Рейтинг реакций
260
Баллы
63
Возраст
31
1/3
Автор темы
DLEToolbar — небольшая панель, которая появляется в углу сайта и показывает, сколько страница «стоит» по времени и по обращениям к базе. Видна только тем, кому вы её открыли.

1792245207643.png

Что она показывает
  • Время, за которое сервер собрал страницу
  • Сколько запросов к базе ушло на страницу — и можно открыть список и посмотреть каждый запрос
  • Код ответа, если что-то пошло не так: 404, 500 и подобное
  • Сброс кэша — одним кликом, страница тут же обновится свежей
  • Смена шаблона прямо с сайта, без захода в админку
  • Свои ссылки — например, сразу на редактирование текущей новости. Можно задать иконку, вкладку и то, на каких страницах ссылка показывается
Кто её видит
Решаете вы: на вкладке «Доступ» отмечаете нужные группы. По умолчанию панель видит только администратор.

Что нужно
DLE от 13.0 до 21.0, PHP от 7.4. Больше ничего настраивать не нужно.
Установка и удаление не трогают файлы и данные вашего сайта.
 

Вложения

  • 1792245227573.png
    1792245227573.png
    191,2 КБ · Просмотры: 37
  • settings.png
    settings.png
    139,5 КБ · Просмотры: 37
  • query-settings.png
    query-settings.png
    154,5 КБ · Просмотры: 37
  • DLEToolbar-0.3.0.zip
    DLEToolbar-0.3.0.zip
    49,9 КБ · Просмотры: 2
Сколько запросов к базе ушло на страницу — и можно открыть список и посмотреть каждый запрос
а сразу подсвечивать каким плагином запросы делаются ?
новичкам полезно будет. меньше фигни вешать будут всякой )
 
Автор темы
@ZerocooL полагаю без расширения вроде xdebug это сделать не получится, но изучить вопрос стоит
 
Где эксплоит в твоем скрипте лучше сразу напиши! 😎
 
Привет, давно тя не было, появился и сразу необычный модуль)
Кстати в ДЛЕ по умолчанию можно поставить что бы было видно:
<!-- The script execution time 0.03194 seconds -->
<!-- The time compilation of templates 0.00398 seconds -->
<!-- Time executing MySQL query: 0.00545 seconds -->
<!-- The total number of MySQL queries 2 -->
<!-- RAM uses 3.6 MB -->
<!-- For compression was used gzip -->
<!-- The total size of the page: 48397 bytes After compression: 11203 bytes -->
 
Автор темы
@Roman.U да можно, но не включается одним кликом и просмотр в исходном коде, такое себе. а тут визуально. поначалу думал вывести количество запросов, время общее их выполнения, но потом подумал кому оно надо. общее время ответа достаточно, а если уж долгий ответ то глянуть запросы один клик. крч чтобы не перегружать ui. есть там еще идеи че добавить в него, какие-то обновления будут крч) включая то, о чем говорил ZerocooL выше
 
@Roman.U да можно, но не включается одним кликом и просмотр в исходном коде, такое себе. а тут визуально. поначалу думал вывести количество запросов, время общее их выполнения, но потом подумал кому оно надо. общее время ответа достаточно, а если уж долгий ответ то глянуть запросы один клик. крч чтобы не перегружать ui. есть там еще идеи че добавить в него, какие-то обновления будут крч) включая то, о чем говорил ZerocooL выше
Зерокул нужную вещь написал, нужно знать, какой плагин грузит и т.д. Ваще желательно, что бы видеть все скрипты, фотки, ифреймы и т.д. что как грузит и насколько. По сути можно конечно через браузер глянуть, но там немного неудобно для меня. Просто не хочу в открытую ветку писать, что и для чено нужно).
 
Автор темы

v0.2.0​

Новый функционал
  • Добавлена экспериментальная настройка «Показывать источник запросов»: файл и строка вызова SQL-запроса, а также подпись модуля или плагина по пути файла. Доступна с DLE 14.0, по умолчанию выключена.
    Источники SQL показываются только для запросов после инициализации панели. Функция экспериментальная: при включении возможна несовместимость со сторонними плагинами, работающими с журналом запросов.
Исправлено
  • Исправлено переключение шаблона через панель: ранее в некоторых случаях выбранный шаблон не применялся.
Прочее
  • В меню шаблонов всегда показывается имя папки, чтобы различать шаблоны с одинаковыми названиями.
  • Меню шаблонов стало шире, его высота учитывает размер экрана, длинный список прокручивается внутри меню.
  • Окна настроек компонентов получили одинаковую ширину вместо подстройки под содержимое.
  • Выключенные компоненты больше не обрабатывают команды смены шаблона и сброса кэша и не включают сбор источников SQL-запросов.
1792741455103.png
 

Вложения

v0.2.0​

Новый функционал
  • Добавлена экспериментальная настройка «Показывать источник запросов»: файл и строка вызова SQL-запроса, а также подпись модуля или плагина по пути файла. Доступна с DLE 14.0, по умолчанию выключена.
    Источники SQL показываются только для запросов после инициализации панели. Функция экспериментальная: при включении возможна несовместимость со сторонними плагинами, работающими с журналом запросов.
Исправлено
  • Исправлено переключение шаблона через панель: ранее в некоторых случаях выбранный шаблон не применялся.
Прочее
  • В меню шаблонов всегда показывается имя папки, чтобы различать шаблоны с одинаковыми названиями.
  • Меню шаблонов стало шире, его высота учитывает размер экрана, длинный список прокручивается внутри меню.
  • Окна настроек компонентов получили одинаковую ширину вместо подстройки под содержимое.
  • Выключенные компоненты больше не обрабатывают команды смены шаблона и сброса кэша и не включают сбор источников SQL-запросов.
Посмотреть вложение 34980
архив в 1 посте и в этом - идентичны
ошибка?
ответ от ии
Код надежный, но я уже заметил несколько слабых мест (хеширование в файлах cookie, пробелы в удалении запросов, доступ для групп без прав администратора).
 
Автор темы
архив в 1 посте и в этом - идентичны
ошибка?
нет, я перезалил в первом посте и прикрепил в посте обновления. в обоих местах ласт версия.

ответ от ии
Код надежный, но я уже заметил несколько слабых мест (хеширование в файлах cookie, пробелы в удалении запросов, доступ для групп без прав администратора).
ответ от ии

Мнение, что «код надёжный», подтверждается. Доступ, CSRF и экранирование на месте, а аудит в AUDIT.md проблем безопасности не нашёл. Из трёх «слабых мест» реальное улучшение даёт только пункт 3. Пункт 2 — мелкая доработка маскировки, пункт 1 — ложная тревога. Если хотите, сделаю пункт 3 (и заодно 2) отдельным небольшим PR от свежего main.

по пункту 3
Это решение администратора, и интерфейс о нём честно предупреждает (settings.php · L82, README §«Доступ»). Но защиту можно было бы сделать строже. Варианты:
  • скрывать «Сброс кэша» и «Запросы» для групп без allow_admin;
  • или ограничить выбор групп теми, у кого есть allow_admin
мой ответ: все ок. но в целом замечание по пункту 3 можно реализовать. по сути нет защиты от дурака - такая суть)
 
  • Нравится
Реакции: doz
Ai правду ли говорит iCooLER
 
правду ли говорит iCooLER

Да, в целом iCooLER говорит здраво.

По описанию:

  • Архивы идентичны — не ошибка, если автор перезалил актуальную версию и в первый пост, и в пост с обновлением.
  • «Хеширование в cookie» — не обязательно уязвимость. Если cookie не даёт доступ сама по себе, не хранит пароль/токен админки и проверяется нормально — это скорее ложная тревога.
  • «Пробелы в удалении запросов» — без кода сложно сказать, но звучит как мелкая техническая доработка, не критичная безопасность.
  • Доступ для групп без allow_admin — вот это реальный спорный момент. Не обязательно уязвимость, если админ сам выдал доступ группе, но защита от дурака тут действительно не помешает.

Я бы сделал так:

  • панель видеть могут выбранные группы;
  • но опасные действия типа сброса кэша, просмотра SQL-запросов и источников запросов — только для групп с allow_admin;
  • либо в настройках не давать выбрать группы без админ-доступа.

То есть формулировка правильная: это не прямой эксплоит, а потенциально небезопасная логика прав доступа, если админ случайно откроет панель не тем.
 
Автор темы
у меня уже готовое было в первые 5 мин как скачал 😀
да но у меня тут тред worktree коммит push pr ci upload чек корректировочные промты ревью коммит push ci merge 🤓
 
Автор темы
@doz не спорю, есть к чему стремится. но и в другую крайность тоже не хочется заходить - "эдак можно много наворотить".
 
  • Нравится
Реакции: doz
Ai как ты думаешь iCooLER дело говорит или он не прав?
 
как ты думаешь iCooLER дело говорит или он не прав?

iCooLER скорее по делу говорит.

Тут не баг в стиле «всё дырявое», а именно улучшение логики прав:

  • если админ сам разрешил группе доступ — формально это его решение;
  • но если группа без allow_admin получает кнопки типа «Сброс кэша» / «Запросы» — это уже спорная зона;
  • лучше сделать защиту от случайной настройки: либо скрывать опасные пункты для не-админских групп, либо не давать такие группы выбрать в настройках.

То есть iCooLER прав в том, что пункт 3 — реальное замечание. Но это не критическая уязвимость, а нормальная доработка «защиты от дурака».

Я бы выбрал простой вариант без оверинжиниринга:

  • панель показывать выбранным группам;
  • опасные действия разрешать только при allow_admin;
  • в настройках рядом с выбором групп оставить предупреждение.

Так и безопасность лучше, и плагин не превращается в комбайн.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху