1.9 KiB
1.9 KiB
CSP inventory
Проверено 13 сентября 2026 года. Production не требует произвольных внешних origin: browser API-запросы идут на текущий домен, изображения скриншотов — только на FILES_DOMAIN, шрифты и сборка Astro — локальные.
Временные inline-зависимости
- динамический JSON-LD в
Layout.astro; - inline bootstrap в
report.astroиspots/[id].astro; - page scripts главной и трёх admin-экранов;
- scoped
<style>Astro-компонентов; - вычисляемые CSS custom properties для шкалы активности и timeline.
Текущая CSP поэтому временно допускает unsafe-inline отдельно для script/style elements и style attributes. Inline event handlers запрещены script-src-attr 'none'; unsafe-eval, wildcard, HTTP и сторонние connect/script origin отсутствуют.
Путь к nonce/hash
- Перенести page scripts в импортируемые клиентские модули, конфигурацию передавать через безопасные
data-*. - JSON-LD либо хэшировать на уровне SSR-заголовка, либо выдавать nonce из web-runtime; статический nonce запрещён.
- Оставить scoped styles в скомпилированных
_astroassets; вычисляемые значения заменить классами/data-*или nonce style. - Удалить
unsafe-inlineизscript-src, затем изstyle-src;style-src-attrубрать последним. - Проверить report, spots, admin, JSON-LD и signed screenshots в production bootstrap. Не добавлять
blob:,*или произвольные CDN для устранения ошибок.