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

Craft CMS Categories: право менять структуру отдельно от просмотра

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

Защитная диагностика Craft CMS Categories: право менять структуру отдельно от просмотра по GHSA-xxpx-f366-4xpq: runtime inventory, bounded regression, измеримый verdict, красная линия и пакет данных для владельца.

Ответ и граница применимости — Craft CMS Categories: право менять структуру отдельно от просмотра

Задача этой страницы — проверить permission gate structures/move-element для view-only пользователя. Сначала подтвердите фактически загруженный craftcms/cms, его digest, диапазон «Packagist:craftcms/cms >= 5.0.0-RC1, < 5.10.6; first patched 5.10.6» и включённый entry point. Затем нужен только ограниченный regression: В in-memory tree создать parent и siblings; controller и repository оставить, persistence заменить mutation spy. Боль: роль с чтением категории может переставить узел и изменить дерево сайта. Итоговый артефакт: role / category / requested parent / tree delta / verdict. GHSA GHSA-xxpx-f366-4xpq задаёт проверяемый ориентир, но не доказывает состояние вашей установки.

Карта решения — Craft CMS Categories: право менять структуру отдельно от просмотра

Разделите путь на Source → Parse/Normalize → Policy → Side effect. Специальная инварианта материала: Право читать или редактировать поля не подразумевает manage-structure. Авторизация повторяется для узла и нового родителя. На каждой границе укажите представление данных, владельца решения и counter. Candidate становится NOT_APPLICABLE только при доказанном отсутствии package или entry point; неизвестная runtime-версия означает UNKNOWN, а не безопасность.

Подготовка безопасного стенда — Craft CMS Categories: право менять структуру отдельно от просмотра

Соберите temp directory, in-memory repository/cache либо pure adapter. Примените протокол: В in-memory tree создать parent и siblings; controller и repository оставить, persistence заменить mutation spy. Используйте короткие canary labels; пользовательские записи, токены, IP, реальные конфиги, production routes и environment dump запрещены. Network, shell, database, filesystem, browser и session issuance замените spies. До control сохраните hash fixture и нулевые counters.

Control и одна переменная — Craft CMS Categories: право менять структуру отдельно от просмотра

Разрешённый control подтверждает, что harness достигает нужной ветки. Boundary-case меняет ровно один параметр и обязан остановиться до состояния «роль с чтением категории может переставить узел и изменить дерево сайта». Сохраните поля role / category / requested parent / tree delta / verdict, reason code и monotonic duration. Право читать или редактировать поля не подразумевает manage-structure. Авторизация повторяется для узла и нового родителя. Не наращивайте размер/глубину после первого превышения и не используйте эксплуатационные payload.

Вердикт без догадок — Craft CMS Categories: право менять структуру отдельно от просмотра

PASS: runtime и entry point подтверждены, control прошёл, boundary остановлен до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемый запрещённый counter/state. UNKNOWN: нет digest, конфигурации, control, точки наблюдения или восстановления. NOT_APPLICABLE: компонент либо функция доказанно отсутствуют. Номер patched release без runtime readback не является PASS.

Красная линия и восстановление — Craft CMS Categories: право менять структуру отдельно от просмотра

Немедленный стоп: view-only роль изменила parent/order или snapshot не восстановился. После стопа не повторяйте проверку с большим вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Ненулевой неожиданный counter сети, процессов, файлов, записей или сессий блокирует PASS и фиксируется отдельно.

Почему нужен отдельный материал — Craft CMS Categories: право менять структуру отдельно от просмотра

Даёт обратимую матрицу read, edit-content и manage-structure capabilities. Не template class instantiation: самостоятельная destructive hierarchy mutation. Поэтому механическая замена framework, ОС или устройства не создаёт новый URL. Практическая самостоятельность выражена в deliverable «role / category / requested parent / tree delta / verdict» и в инварианте: Право читать или редактировать поля не подразумевает manage-structure. Авторизация повторяется для узла и нового родителя. Совпадающий старый intent должен стать update/merge-кандидатом.

Минимальный handoff — Craft CMS Categories: право менять структуру отдельно от просмотра

Передайте владельцу GHSA GHSA-xxpx-f366-4xpq, runtime digest, границу «Packagist:craftcms/cms >= 5.0.0-RC1, < 5.10.6; first patched 5.10.6», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-08-06, обновлена 2026-09-01; эти даты отражают свежесть источника, а не популярность запроса или факт эксплуатации. После remediation повторите тот же fixture и сравните state transition.

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

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

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

Ответы

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

Ваш ответ

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

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

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