Dokuwiki - Release 2026-07-14 Mort - изменения - 2026

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

DokuWiki 2026-07-14 «Mort» — это 57-й стабильный релиз популярной вики-движка с открытым исходным кодом. Релиз получил кодовое имя «Mort» и содержит множество значительных изменений: от повышения системных требований до поддержки Markdown, переработки поискового индекса и важных исправлений безопасности. Версия была выпущена 14 июля 2026 года, а 22 июля вышло обновление 2026-07-14a (Mort hotfix), исправляющее ряд критических уязвимостей.

Требования к окружению

Начиная с версии «Mort», DokuWiki требует PHP 8.2 или выше. Это обусловлено необходимостью использования современных возможностей языка и поддержания безопасности. Пользователям, всё ещё использующим PHP 7.x или 8.0/8.1, необходимо обновить интерпретатор до актуальной ветки.

Поддержка Markdown

Ключевое нововведение релиза — встроенный парсер Markdown. Ранее Markdown был доступен только через сторонние плагины, теперь же он реализован на уровне ядра.

Режим Описание
dokuwiki Классический синтаксис DokuWiki (по умолчанию)
markdown Полный синтаксис Markdown (GFM)
mixed Смешанный режим — поддержка обоих синтаксисов

Режим задаётся через новую опцию конфигурации $conf['syntax']. Для большинства существующих вики с уже написанным контентом наиболее практичным будет смешанный режим (mixed).

Реализована поддержка GitHub Flavored Markdown (GFM):

  • Заголовки ATX (# текст###### текст)
  • Выделение текста: курсив и жирный (включая вложенные варианты ***текст***)
  • Зачёркивание (~~текст~~)
  • Кодовые блоки (одиночные и двойные обратные кавычки)
  • Ограждённые блоки кода (fenced code blocks)
  • Ссылки [текст](url)
  • Изображения и медиафайлы
  • Списки (нумерованные и маркированные)
  • Таблицы в стиле GFM
  • Экранирование обратной косой чертой
  • Автоссылки (autolinks)

Добавлена инфраструктура для круглосуточного тестирования парсера Markdown (spec.txt-driven roundtrip tests), а также поддержка суб-парсеров в Handler/Parser/ModeRegistry.

Переработка поискового индекса

Полностью переписан механизм полнотекстового поиска. Новая реализация обеспечивает:

  • Более высокую скорость поиска
  • Повышенную надёжность и устойчивость индекса
  • Возможность повторного использования индексации сторонними плагинами
  • Исправление коррупции индекса в updateTuple
  • Корректное чтение суффиксов разделённого индекса
  • Размещение директорий блокировок индекса внутри data/locks
  • Обработка невалидных коротких wildcard-термов (без фатальных ошибок)
  • Восстановление метода histogram() через BC-совместимую обёртку

Кнопка копирования кода

Добавлена удобная кнопка «Copy» для блоков кода — пользователи могут копировать содержимое в буфер обмена одним кликом. Это небольшое, но востребованное улучшение пользовательского опыта.

Безопасность

Релиз «Mort» содержит ряд важных исправлений безопасности. Особое внимание уделено горячему исправлению 2026-07-14a, вышедшему через неделю после первоначального релиза.

Исправления в версии 2026-07-14 (основной релиз)

  • Исправлена XSS-уязвимость (#4305)
  • Удалён устаревший заголовок X-XSS-Protection
  • Добавлена возможность отключения действия diff/compare
  • Улучшено кэширование фидов (ограничение флуда кэша)
  • Добавлен заголовок Referrer-Policy для контроля исходящих запросов
  • Удалены устаревшие функции поиска и парсера (уменьшение поверхности атаки)

Исправления в горячем исправлении 2026-07-14a

  • authplain: экранирование имени пользователя в modifyUser (предотвращение инъекций)
  • authad: экранирование имени пользователя в LDAP-фильтре (предотвращение LDAP-инъекции)
  • revert: экранирование пользователя и IP в логе изменений (предотвращение stored XSS)
  • extension: валидация базового имени для предотвращения path traversal при установке
  • extension: валидация URL ссылок и экранирование удалённых данных (предотвращение XSS)
  • extension: AJAX-переключатели возвращают plain-text (предотвращение XSS)
  • extension: предотвращение DOM XSS при открытии lightbox со скриншотами
  • auth: строгое сравнение при проверке членства и ACL
  • media: авторизация целевого пути операций записи медиафайлов
  • Ip: валидация CIDR-маски (предотвращение фатальных ошибок и излишнего доверия к прокси)
  • Remote: ограничение core.aclCheck для других пользователей — только суперпользователям

Улучшения и исправления

Интерфейс и доступность

  • Улучшена доступность (a11y) редактора, тулбара, формы логина и менеджера расширений
  • Кнопкам тулбара и пикера явно задан тип button
  • Исправлена проблема с перекрытием/закрытием пикера (race condition)
  • Исправлено позиционирование текстовой области редактора относительно тулбара

Медиа-менеджер

  • Добавлен предпросмотр изображений WEBP
  • Исправлено отображение EXIF-повёрнутых изображений (больше не обрезаются) — #4482
  • Исправлено масштабирование маленьких изображений в детальном предпросмотре
  • Обработка массивов в EXIF-датах
  • Пропуск слишком коротких JPEG-маркеров

Парсер

  • Предотвращение совпадения инлайн-форматирования через границы абзацев
  • Требование не-пробельного соседства для разделителей инлайн-форматирования
  • Исправление потери контента документа после пустой строки с отступом
  • Исправление BC для ручного создания Handler/Parser
  • Исправление «проглатывания» списка с отступом таблицей
  • Исправление разрешённых режимов (allowedModes) для модов, объявляющих категории
  • Разделение Parsing\Helpers на классы Link, Media, Code

Журнал изменений (changelog)

  • Определение внешнего редактирования сохраняется при первом чтении
  • Обнаружение восстановленной удалённой страницы как пересоздания
  • Прекращение записи ложных внешних изменений при смене mtime медиафайлов

Фиды и подписки

  • Исправлена агрегация RSS-фидов после обновления SimplePie 1.9
  • Уплощение повторяющихся HTTP-заголовков при получении фидов
  • Включение diff-ссылки в plain-text письма подписок
  • Использование корректного разделителя & в diff-ссылках

Кэширование

  • Ключ кэширования привязан к базовому URL, а не к сырому заголовку Host

Прочее

  • Новая опция client_ip_header для продвинутой конфигурации (заменяет realip)
  • Сброс таймера блокировки при вставке и других событиях ввода
  • Исправление дублирования TOC из-за повреждённых постоянных метаданных (#3179)
  • На странице информации администратора отображаются шаблон и синтаксис
  • Корректная обработка Synology в os-release
  • Предотвращение warning в authad при вызове initAdLdap до заполнения opts
  • Экранирование аргументов git log для совместимости с Windows
  • Актуализирован год в копирайте README

Инфраструктурные изменения

  • Добавлена поддержка суб-парсеров (sub-parser support) в Handler/Parser/ModeRegistry
  • Выделен абстрактный AbstractListsRewriter
  • Константы regex-примитивов и хук getInstructionName()
  • Удалён реестр getLineStartMarkers
  • Параметр $start для listo_open
  • Валидация CIDR-масок для IP
  • Обновление зависимостей (dependencies update)
  • Применение Rector и PHP Code Sniffer (автоматические исправления кода)
  • Множественные обновления переводов (fr, cs, ro, sk и другие)

Резюме

DokuWiki 2026-07-14 «Mort» — это значительный релиз, который одновременно поднимает планку системных требований (PHP 8.2+), добавляет долгожданную поддержку Markdown, полностью перерабатывает поисковый индекс и исправляет множество уязвимостей безопасности. Горячее исправление 2026-07-14a закрыло ещё 11 уязвимостей, включая XSS, LDAP-инъекции и path traversal. Релиз затрагивает практически все подсистемы: парсер, медиа-менеджер, кэширование, фиды, подписки, аутентификацию и интерфейс. Настоятельно рекомендуется к обновлению всем пользователям DokuWiki.

Ссылки

×
Реклама
ИКС