Safari Technology Preview 251: CSP host-source вида *:*/path. People-first диагностика: решающая таблица «source expression → URL parts → matched → violated directive»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Наблюдаемый симптом без догадок
Прямой ответ на запрос «как проверить CSP host source wildcard scheme port path в Safari Technology Preview 251» начинается с границы: проверяется только боль «разрешённый политикой URL не совпадает с host-source вида *:*/path из-за сочетания wildcard-порта и пути» на локальном fixture. Успех заранее определяется так: wildcard source разрешает только ожидаемый path, а negative path даёт документированное violation. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — сетевой 404 или redirect, ошибочно названный CSP mismatch. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Primary change item без обещаний
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлено сопоставление Content Security Policy host-source формы *:*/path. Техническая ссылка — 318612@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Чистый fixture и поля
Fixture: локальная страница с отчётным CSP, двумя тестовыми портами и безличным ресурсом по фиксированному path. До действия без интерпретации записываются полный directive token, resource URL без query, effective directive, HTTP status и violation disposition. Рабочий артефакт — решающая таблица «source expression → URL parts → matched → violated directive». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
Контроль до canary
Контрольная ветка готовится до canary: явный host-source с конкретным портом и тем же path. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «сетевой 404 или redirect, ошибочно названный CSP mismatch» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Одна переменная по шагам
Основной шаг: изменять только path ресурса между совпадающим и несовпадающим при неизменных scheme/host/port. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются полный directive token, resource URL без query, effective directive, HTTP status и violation disposition. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда wildcard source разрешает только ожидаемый path, а negative path даёт документированное violation. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Как классифицировать исход
Финальное решение хранится как решающая таблица «source expression → URL parts → matched → violated directive». Reproduced означает только выполнение условия «wildcard source разрешает только ожидаемый path, а negative path даёт документированное violation» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если redirect меняет URL, отчёт пришёл от другой policy, ресурс кэширован или используется небезопасная внешняя цель. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «полный directive token, resource URL без query, effective directive, HTTP status и violation disposition», результата контрольной ветки, отметки rollback и ссылки на 318612@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318612@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318612@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.