Права доступа и журнал действий
File Inspector работает с критичной областью сайта, поэтому доступ в текущей версии намеренно жёсткий.
Кто может работать с модулем
Хотя в установочном описании существуют уровни прав «Доступ закрыт», «Чтение» и «Запись», фактический AccessManager версии 0.8.6 разрешает и чтение, и запись только пользователю с административными правами Битрикс.
Кроме того, основная страница «Инспектор» отдельно проверяет администратора. Поэтому выдача группе права «Чтение» на модуль сама по себе не превращает File Inspector в файловый менеджер только для чтения.
Защита пути
Серверные операции проверяют, что путь находится внутри одного из разрешённых корней. Нормализация пути и проверка реального родителя используются также при создании новых файлов. Это не отменяет необходимости правильно задавать сами корни: если разрешить слишком широкий каталог, администратор получит доступ ко всей этой области.
CSRF и авторизация
Большинство действий выполняется через AJAX-контроллеры Битрикс с проверкой авторизации и сессионного токена. Это защищает операции от прямого вызова без активной административной сессии.
Журнал действий
В меню File Inspector есть пункт «Журнал действий». Он открывает стандартный журнал событий Битрикс с фильтром по модулю sendev.inspector.
Журнал особенно полезен при диагностике ошибок чтения дерева, операций с файлами и фоновых процессов. Учтите, что не каждое успешное действие обязательно оформлено как отдельное пользовательское событие — часть технических ошибок записывается через стандартный механизм логирования Битрикс.
[Скриншот 1: пункт Журнал действий и отфильтрованный журнал Битрикс]
Рекомендации для рабочего сайта
- не добавляйте в allowed_roots каталоги выше необходимого;
- не включайте показ скрытых файлов без задачи;
- не убирайте .env и .htaccess из исключений без понимания последствий;
- перед массовыми операциями создавайте снэпшот;
- не редактируйте одновременно один файл через File Inspector и внешний редактор;
- используйте отдельные административные учётные записи, чтобы история версий сохраняла автора.