CSP Report-Only: практичне впровадження політики
Спостерігайте за порушеннями, перевіряйте важливі сценарії та застосовуйте лише перевірену політику.
Технічна команда check.uk.app · Перевірено 26 вересня 2026
Почніть із тестового середовища
Збережіть поточні заголовки й конфігурацію проксі. Складіть перелік джерел для входу, оплат, CAPTCHA, шрифтів та аналітики. Збережіть наявну примусову CSP: політика спостереження її не замінює й не послаблює. Підготуйте відкат до зміни заголовка.
Додайте пробну політику в Nginx
Розмістіть директиву у відповідному блоці server або location тестового сайту. Це суворий приклад для спостереження, а не готова політика продакшну. Вона дозволяє джерела свого origin, фіксує inline-скрипти й зовнішні джерела, але сама їх не блокує.
Параметр always охоплює відповіді з помилками. У Nginx 1.26.3 власна директива add_header у вкладеному location скасовує успадкування батьківських add_header. Збережіть інші заголовки безпеки й перевірте кожний маршрут. Не додавайте навмання другу копію заголовка, який уже повертає застосунок.
add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'" always;Перегляньте відповідь і поведінку браузера
Перед перезавантаженням сервісу виконайте nginx -t для своєї інсталяції. У засобах розробника браузера переконайтеся, що відповідь містить Content-Security-Policy-Report-Only, і перегляньте Console під час роботи зі сторінкою. Приклад призначений для локального спостереження в браузері та не налаштовує серверний збір звітів.
Для збирання потрібні робоча HTTPS-адреса приймача, Reporting-Endpoints і report-to. Старіший report-uri має інший формат даних і сумісність. Установіть ліміти обсягу та строки зберігання: URL у звітах можуть містити дані користувачів. Не надсилайте звіти на адресу з прикладу.
Порівняйте поведінку на контрольному прикладі
Наш ізольований тест містить зовнішній скрипт зі свого origin та inline-скрипт. Із цим Report-Only обидва виконуються, а порушення inline-скрипту фіксується. Після примусового застосування тієї самої політики через Content-Security-Policy зовнішній скрипт працює, а inline блокується. Перевірте власні сторінки: цей приклад не сертифікує сторонні інтеграції.
Обґрунтовуйте кожне дозволене джерело. Для потрібного inline-коду використовуйте nonce, створені застосунком, або перевірені хеші замість широкого unsafe-inline. Nonce має бути непередбачуваним і новим для кожної відповіді; незмінне скопійоване значення не підходить.
Застосовуйте поступово й перевірте відкат
Після перевірки типових сценаріїв перенесіть політику в примусовий заголовок спочатку на тестовому середовищі. Повторно перевірте вхід, відновлення, оплату, вбудовування й помилки. Декілька примусових політик поєднують обмеження: новий заголовок не послаблює наявний. Якщо потрібні функції зламалися, відновіть збережену конфігурацію.
check.uk.app спостерігає за заголовками, але не виконує застосунок для перевірки повноти CSP. Середовище прикладу: Nginx 1.26.3 та Microsoft Edge на Chromium, 26 вересня 2026. CSP продакшну для цього прикладу не змінювалася.