gendesign/caddy
bot-backend a29bf936e5
All checks were successful
CI Trade-In / changes (pull_request) Successful in 14s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 17s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
chore(caddy): security headers для meraocenka.ru + отключение browse в /preview
meraocenka.ru — публичный B2C-домен, не отдавал ни HSTS, ни защиту от
встраивания во фрейм, ни X-Content-Type-Options/Referrer-Policy.
Добавлен блок header: HSTS на 180 суток (без includeSubDomains/preload —
оба флага практически необратимы, не все поддомены под контролем),
X-Frame-Options: DENY + CSP frame-ancestors 'none' (старые клиенты +
современный механизм), nosniff, strict-origin-when-cross-origin, плюс
снятие Server/X-Powered-By. Полноценный CSP (default-src/script-src) —
отдельная работа, здесь только периметр вокруг фрейма. Next.js
(tradein-mvp/frontend) эти заголовки не выставляет — дублирования нет.

handle_path /preview/* отдавал листинг каталога (file_server browse).
Публичность самих макетов намеренная и задокументирована — убран только
листинг, файлы по прямой ссылке продолжают отдаваться.

Проверено: caddy validate --config apps.caddy --adapter caddyfile → Valid
configuration (до и после правки, с учётом относительных import вида
../users.caddy.snippet — apps.caddy валиден только при монтировании
родительского caddy/, не caddy/sites/ отдельно).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
2026-09-13 13:49:38 +03:00
..
local fix(infra/caddy): site-блоки с секретами переживают деплой — import caddy/local/*.caddy 2026-08-18 09:42:53 +03:00
sites chore(caddy): security headers для meraocenka.ru + отключение browse в /preview 2026-09-13 13:49:38 +03:00
deploy-window.caddy.snippet fix(caddy): страница «сервис обновляется» вместо голого 502 в окне деплоя 2026-09-05 22:48:54 +05:00
metrics-ingest.caddy.snippet feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
metrics-ui.caddy.snippet feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
users.caddy.snippet chore(auth): regenerate praktika pilot password (#635/#659) 2026-05-30 21:10:09 +03:00