CSP лише для звітування не має чинного заголовка відповіді
У звітіCSP Report-Only header without an enforcing CSP response header
csp_report_only_without_enforcement · Потребує перегляду
Ця порада з безпеки з’являється, коли відповідь сторінки містить непорожній текст політики Content-Security-Policy-Report-Only і не має чинного заголовка Content-Security-Policy. Порожнє значення лише для звітування не фіксується. Режим лише звітування не застосовує обмежень; для звітування також потрібне налаштоване місце призначення. Коли тестування завершено, надсилайте відповідну політику як чинний заголовок.
Серйозність: До уваги. Порада з безпеки в розділі «Корисно знати». Перегляньте, чи слід надсилати перевірену політику як чинний заголовок; придатна метаполітика вже може застосовувати обмеження, а вплив на ранжування не стверджується.
Чому це важливо
MDN описує Content-Security-Policy-Report-Only як спосіб відстежувати порушення без застосування політики, щоб їх можна було протестувати чи виправити, перш ніж буде застосовано чинний Content-Security-Policy. Сам заголовок лише для звітування нічого не обмежує.
Що зробити
- Перегляньте знахідку: у ній показано політику лише для звітування й до десяти сторінок, що її надсилають, з їхніми заголовками.
- Протестувавши політику й усунувши порушення, надсилайте відповідну версію як
Content-Security-Policy; поруч можна залишити заголовок лише для звітування, щоб випробувати суворішу.
Коли залишити як є: якщо сторінка вже застосовує політику через CSP-тег <meta> або заголовок лише для звітування — це свідоме випробування, можна залишити як є; перевірка шукає лише чинний заголовок.
Що ми читаємо
Ми читаємо заголовки кінцевої відповіді кожної просканованої сторінки з власним user agent. Кожен заголовок Content-Security-Policy-Report-Only ділиться на непорожні тексти політик; порожнє значення чи значення лише з пробілів знахідки не дає. Політика фіксується, коли та сама відповідь узагалі не має заголовка Content-Security-Policy; будь-який такий чинний заголовок рахується, навіть порожній. CSP-тег <meta> знахідки не знімає.
Сторінки, що надсилають однаковий текст лише для звітування, фіксуються разом, одна знахідка на точний текст; політика, яка має новий nonce у кожній відповіді, дає кожній сторінці власну знахідку. Сторінки, заголовки чи HTML яких захоплено не повністю, не оцінюються.
Приклад і докази
Ілюстративний приклад — одна відповідь, а не реальний аудит.
https://bakery.example/ відповідає з:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Security-Policy-Report-Only: default-src 'self'; report-to cspЗаголовка Content-Security-Policy немає, тому політика лише для звітування фіксується з цією сторінкою та іншими сторінками, що надсилають той самий текст.
Можливе виправлення після тестування: надсилайте також Content-Security-Policy: default-src 'self'.
Підтвердити й перевірити знову
Перевірте самі: відкрийте заголовки відповіді сторінки в інструментах розробника вашого браузера й пошукайте і Content-Security-Policy-Report-Only, і Content-Security-Policy.
Повторна перевірка: Повний аудит — запустіть новий повний аудит. За повного охоплення перевірки ця знахідка про текст політики закривається, лише коли жодна наразі просканована сторінка не надсилає цього самого тексту лише для звітування без чинного заголовка відповіді Content-Security-Policy; нова сторінка з тим самим поєднанням залишає її відкритою. Додавання лише CSP-тега <meta> її не закриває. Зміна тексту лише для звітування може відкрити знахідку для нового тексту.
Обмеження та джерела
Перевірка не доводить, що сторінка не застосовує жодної політики, бо її може застосовувати тег <meta>. Непорожній заголовок, що містить лише крапки з комою, однаково може бути зафіксований; перевірка не оцінює, чи має політика лише для звітування корисні директиви. Вона не перевіряє, чи надсилаються й читаються звіти, і читає лише кінцеву відповідь, яку кожна сторінка дала нашому сканеру.
Упевненість: Висока, бо обидва заголовки зчитуються безпосередньо з відповіді.
Джерела
- MDN, Заголовок Content-Security-Policy-Report-Only — описує заголовок як відстеження порушень без застосування політики, як крок перед чинним Content-Security-Policy. Перевірено 28 вересня 2026.
Редакційна перевірка: 2 листопада 2026