К обсуждениям

Statamic: фильтрация restricted entries в navigation API

Редакция VOne Технологии

Защитная диагностика Statamic: фильтрация restricted entries в navigation API по GHSA-QH8C-7588-QFRV: применимость, изолированный тест, измеримый verdict, критерий остановки и пакет данных для владельца системы.

Короткий ответ и применимость — Statamic: фильтрация restricted entries в navigation API

Проверяемая задача: проверить object visibility каждой записи в navigation endpoint. Сначала подтвердите фактически загруженный компонент Statamic CMS, его runtime digest, затронутый entry point и границу версий «statamic/cms >= 0, fixed 5.74.1; statamic/cms >= 6.0.0, fixed 6.24.0». Только после inventory выполняется ограниченный regression: Вызвать navigation serializer для public, member и editor principals с synthetic mixed-visibility tree; storage заменить fixture Пользовательская боль конкретна: ответ навигации может раскрыть restricted entry пользователю без разрешения просмотра. Результат оформляется как матрица principal / entry visibility / returned IDs / policy reasons / omissions. GHSA GHSA-QH8C-7588-QFRV — ориентир для проверки, но не доказательство состояния вашей установки, инцидента или эксплуатации.

Граница данных и решения — Statamic: фильтрация restricted entries в navigation API

Разложите этот путь на источник данных, нормализованное представление, policy verdict и side effect. Специальная инварианта: Каждый returned entry проходит policy для данного principal, а parent/child expansion не возвращает скрытые IDs. Для каждого перехода укажите владельца решения, ожидаемое состояние и запрещённый результат. NOT_APPLICABLE возможен только при доказанном отсутствии Statamic CMS или соответствующей функции. Неизвестная версия, digest либо конфигурация означает UNKNOWN, а не безопасность; номер исправленного релиза не заменяет runtime readback.

Изолированный стенд — Statamic: фильтрация restricted entries в navigation API

Используйте disposable temp directory, in-memory repository, detached DOM или pure adapter — по типу компонента, но не production. Протокол: Вызвать navigation serializer для public, member и editor principals с synthetic mixed-visibility tree; storage заменить fixture Сеть, shell, database, filesystem, browser, message broker, выдача сессии и другие side effects заменяются spies, recorders или счётчиками. Применяйте короткие synthetic labels; реальные токены, IP, аккаунты, конфиги, логи и пользовательские данные запрещены. Перед control сохраните baseline hash и нулевые counters.

Control и один boundary-case — Statamic: фильтрация restricted entries в navigation API

Benign control доказывает достижимость нужной ветки. Boundary-case меняет ровно один структурный признак и обязан остановиться до состояния «ответ навигации может раскрыть restricted entry пользователю без разрешения просмотра». Сохраните матрица principal / entry visibility / returned IDs / policy reasons / omissions, reason code, monotonic duration и cleanup state. Проверяемое правило: Каждый returned entry проходит policy для данного principal, а parent/child expansion не возвращает скрытые IDs. Не увеличивайте размер, глубину или число повторов после первого нарушения; материал не требует эксплуатационного payload, внешней цели или реального секрета.

Как вынести PASS, FAIL и UNKNOWN — Statamic: фильтрация restricted entries в navigation API

PASS требует подтверждённых component digest и entry point, успешного control, соблюдения инварианты «Каждый returned entry проходит policy для данного principal, а parent/child expansion не возвращает скрытые IDs», остановки boundary до side effect и доказанного cleanup. FAIL — тот же provenance и наблюдаемый запрещённый call, counter либо state transition. UNKNOWN — нет digest, конфигурации, точки наблюдения, control или восстановления. NOT_APPLICABLE — компонент или функция доказанно отсутствуют. Для воспроизводимости приложите матрица principal / entry visibility / returned IDs / policy reasons / omissions; субъективного «выглядит нормально» недостаточно.

Красная линия и восстановление — Statamic: фильтрация restricted entries в navigation API

Немедленно остановитесь, если restricted ID, title или structural hint появился у principal без view capability. Не повторяйте проверку с более сильным вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Любой неожиданный ненулевой counter сети, процессов, файлов, записей, маршрутов, браузерной навигации или сессий блокирует PASS и фиксируется отдельно от parser/policy результата. Production, реальные учётные записи и чужие данные в тест не входят.

Почему это самостоятельный intent — Statamic: фильтрация restricted entries в navigation API

Проверяет не только status endpoint, но и поэлементную проекцию дерева с parent-child связями. Отдельный navigation disclosure intent, а не mutation authorization или общий page access. Поэтому механическая замена бренда, ОС или устройства не создаёт ещё один URL. Самостоятельная практическая ценность выражена deliverable «матрица principal / entry visibility / returned IDs / policy reasons / omissions» и инвариантой «Каждый returned entry проходит policy для данного principal, а parent/child expansion не возвращает скрытые IDs». Если опубликованная страница уже покрывает тот же вопрос, пользовательскую боль и дерево решения, правильное действие — update/merge по отдельному контракту, а не соседняя страница.

Минимальный пакет для владельца — Statamic: фильтрация restricted entries в navigation API

Передайте владельцу GHSA GHSA-QH8C-7588-QFRV, runtime digest, границу «statamic/cms >= 0, fixed 5.74.1; statamic/cms >= 6.0.0, fixed 6.24.0», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-08-06, обновлена 2026-08-06; даты подтверждают свежесть проверенного источника, но не популярность запроса и не состояние конкретной системы. После remediation повторите тот же fixture и сравните state transition без изменения тестового масштаба.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии, границы и ссылки сверены по GitHub Advisory Database и прямому upstream-материалу. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.