Files
2026-07-31 22:26:56 +03:00

6.2 KiB
Raw Permalink Blame History

Август 2027 — техническая вычитка web security

Пакет состоит из трёх самостоятельных материалов: про проверку security headers, измерение Web Vitals и эксплуатационную карточку с rollback. Исторические slug сохранены. В HTML-телах нет редакционных планов, описания автора, внутренних статусов или отчёта о создании текста.

Проход 1 — факты, пример и источники

Статья До После Правка
Practice Карточка решения говорила о «контроле» без конкретного web-объекта. buildSecurityHeaders возвращает CSP nonce, object-src none, base-uri self и HSTS с явным ограничением первого HTTP-перехода. Пример проверяет реальные директивы, а не абстрактный статус безопасности.
Mechanism Метрики описывались как общий показатель качества страницы. classifyWebVitals отдельно проверяет LCP, INP и CLS; текст различает field/lab и p75 по сегменту. Порог не выдаётся за причинность и не смешивается с UX-выводом.
Field Runbook был рассуждением о корректирующем процессе. validateRunbookCard требует symptom, scope, precondition, action, rollback, verification и observable результата. Инструкция получает проверяемый вход и условие завершения.

Источники проверены как первичные: CSP Level 3, RFC 6797 HSTS, Web Vitals, W3C Performance Timeline и NIST SP 800-61r2. В каждой статье отдельно указано, что источник определяет и чего не доказывает о конкретном приложении.

Проход 2 — структура, голос и проверяемость

Статья До После Правка
Practice Заголовок и вступление обещали «безопасность» без симптома. Первые абзацы называют XSS/downgrade, цену ошибки и маршрут Report-Only → enforce; далее идут карта ресурсов, таблица директив и ограничения. Открытие отвечает на вопрос читателя и не обещает абсолютную защиту.
Mechanism LCP, INP и CLS шли одним списком. Для каждой метрики добавлены пользовательский вопрос, порог, диагностический разрез и следующий тест. Короткая речь привязана к действию, а не к каталогу терминов.
Field Runbook заканчивался советом «проверить результат». Добавлены precondition, обратимое действие, rollback, owner-free verification и критерий закрытия. Команда не считается восстановлением без наблюдаемого результата.

Примеры запускаются над локальными данными и чистыми функциями. В коде нет обращения к сети, файловой системе, секретам, часам или security tooling. Поэтому статьи объясняют механизм и форму проверки, но не выдают fixture за evidence конкретного сервиса.

Проход 3 — визуал, доступность и выпускная вычитка

Статья До После Правка
Practice Граф показывал внутреннюю карту решений. SVG разделяет CSP и HSTS и ведёт неизвестный ресурс в stop-ветку; title, desc, alt и caption называют границу. Рисунок объясняет объект защиты.
Mechanism Матрица была общей quality rubric. SVG показывает LCP/INP/CLS, вопрос, порог и диагностический срез на ширине 375 px. Визуал помогает выбрать следующий замер.
Field Петля revision не показывала условие завершения. SVG ведёт Symptom → Precondition → Action → Verify и отдельно показывает rollback. Рисунок закрепляет обратимость и проверку результата.

Три SVG прошли XML и safety scan: нет script, foreignObject, javascript:, data:image и event handlers. Sharp-рендер на 375 px проверен визуально: подписи, стрелки и стоп-ветки не обрезаны. В HTML у каждой статьи есть таблица с caption/thead/scope, runnable-пример и ordered route.

Итоговые проверки

  • node --check scripts/upgrade-2027-08.mjs — PASS.
  • node scripts/upgrade-2027-08.mjs --verify-fixture — PASS, 7/7.
  • npm run audit:draft -- scripts/upgrade-2027-08.mjs — PASS, 3/3 exact slugs.
  • npm run audit:articles для трёх августовских slug — PASS.
  • xmllint --noout, SVG safety scan и Sharp 375 px — PASS для трёх assets.
  • Cross-scan body с включённым code и исключёнными source lists — без 12-словных повторов в общей партии.