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

Safari Technology Preview 251: CNAME expiry cap не затрагивает first-party cookie

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

Safari Technology Preview 251: CNAME expiry cap не затрагивает first-party cookie. People-first диагностика: матрица «контекст запроса → DNS role → requested expiry → stored expiry class»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.

Как отделить этот сбой

Прямой ответ на запрос «как проверить CNAME cloaking cookie expiry cap для top level и subresource в Safari Technology Preview 251» начинается с границы: проверяется только боль «срок собственной cookie top-level страницы ошибочно сокращается правилом, предназначенным только для CNAME-cloaked subresource» на локальном fixture. Успех заранее определяется так: expiry top-level cookie сохраняется отдельно, а cap оценивается только для соответствующего subresource контекста. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — обычное ограничение cookie lifetime, ошибочно принятое за CNAME-cloaking cap. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.

Что именно подтверждено в Release 251

Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлено применение CNAME-cloaking cookie expiry cap: оно больше не затрагивает собственные cookies top-level страницы. Техническая ссылка — 318332@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.

Измерения до изменения

Fixture: контролируемые тестовые hostnames, локальные пустые cookies и серверный журнал только Set-Cookie атрибутов без значений. До действия без интерпретации записываются request role, registrable domain, Max-Age/Expires, stored expiry bucket и источник Set-Cookie. Рабочий артефакт — матрица «контекст запроса → DNS role → requested expiry → stored expiry class». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.

Независимый маршрут сравнения

Контрольная ветка готовится до canary: top-level cookie без CNAME-пути при тех же атрибутах SameSite, Secure и Path. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «обычное ограничение cookie lifetime, ошибочно принятое за CNAME-cloaking cap» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.

Локальный прогон и возврат

Основной шаг: установить две безличные cookies с одинаковым сроком: одну top-level, другую через подготовленный subresource. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются request role, registrable domain, Max-Age/Expires, stored expiry bucket и источник Set-Cookie. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда expiry top-level cookie сохраняется отдельно, а cap оценивается только для соответствующего subresource контекста. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.

Стоп-линия и итоговый артефакт

Финальное решение хранится как матрица «контекст запроса → DNS role → requested expiry → stored expiry class». Reproduced означает только выполнение условия «expiry top-level cookie сохраняется отдельно, а cap оценивается только для соответствующего subresource контекста» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если нет контроля DNS/CNAME, часы меняются, cookie имеет реальный идентификатор или policy браузера неизвестна. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «request role, registrable domain, Max-Age/Expires, stored expiry bucket и источник Set-Cookie», результата контрольной ветки, отметки rollback и ссылки на 318332@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.

Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318332@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

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

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

Ответы

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

Ваш ответ

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

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

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