Сторінки не мають Content Security Policy
У звітіPages served without any Content-Security-Policy
csp_missing · Проблема
Це з’являється, коли сторінка, доступна для індексування, двічі поспіль відповіла без Content Security Policy: без заголовка Content-Security-Policy і без CSP-тега <meta> у head. Політика обмежує, які скрипти та інший контент може завантажувати сторінка, що зменшує шкоду від впровадженого скрипта. Додайте політику, що пасує вашим сторінкам.
Серйозність: Низька. Відсутня політика сама собою не є атакою, але без неї бракує шару, що обмежує впроваджені скрипти, найкориснішого на сторінках, які працюють з обліковими записами чи особистими даними.
Чому це важливо
Content Security Policy каже браузеру, які джерела скриптів та іншого контенту може використовувати сторінка. web.dev описує її як додатковий шар захисту від міжсайтового скриптингу, рекомендує для сайтів, що працюють із чутливими даними користувачів, і зазначає, що політику можна спершу випробувати в режимі лише звітування.
Що зробити
- Перегляньте знахідку: у ній показано обидві відповіді, які ми прочитали, і те, що жодна не мала чинної політики; заголовок лише для звітування, якщо він є, наведено, але він не враховується.
- Додайте заголовок відповіді
Content-Security-Policyабо тег<meta http-equiv="Content-Security-Policy">усередині<head>з політикою, що пасує скриптам сторінки. - Якщо хочете спершу протестувати, надсилайте політику як
Content-Security-Policy-Report-Only, а потім перейдіть на чинний заголовок: сам заголовок лише для звітування цієї знахідки не знімає.
Що ми читаємо
Ми читаємо кінцеву відповідь кожної просканованої сторінки з власним user agent та її HTML, не виконуючи JavaScript. Коли перша відповідь — повна HTML-сторінка з кодом 200, ми одразу запитуємо ту саму адресу вдруге тим самим запитом і читаємо обидві відповіді.
Сторінка фіксується, коли вона доступна для індексування, без noindex і без canonical на іншу адресу, і жодна відповідь не має заголовка Content-Security-Policy чи CSP-тега <meta> із вмістом усередині <head>. Будь-який такий заголовок вважається політикою, навіть порожній; заголовок Content-Security-Policy-Report-Only — ні.
Якщо дві відповіді розходяться щодо того, чи є чинна CSP, або другий запит неможливо порівняти з першим, наприклад тому, що перша відповідь встановила cookie чи минуло понад 30 секунд, сторінка позначається як неперевірена, а не фіксується.
Приклад і докази
Ілюстративний приклад — одну сторінку прочитано двічі, а не реальний аудит.
https://bakery.example/order/ відповіла на обидва запити так:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Security-Policy-Report-Only: default-src 'self'Жодна відповідь не має заголовка Content-Security-Policy, а <head> сторінки не має метатега CSP. Заголовок лише для звітування показано, але він не враховується, тому сторінка фіксується з обома відповідями.
Можливе виправлення, щойно звіти покажуть, що виправляти більше нічого: надсилайте ту саму політику як Content-Security-Policy: default-src 'self'.
Підтвердити й перевірити знову
Перевірте самі: відкрийте заголовки відповіді сторінки в інструментах розробника вашого браузера й пошукайте Content-Security-Policy; у вихідному коді сторінки пошукайте в <head> рядок Content-Security-Policy.
Повторна перевірка: Повний аудит — запустіть новий аудит сайту. Знахідка закривається, коли сторінку знову проскановано, обидві відповіді повні й сходяться на тому, що чинна CSP наявна. Якщо вони розходяться щодо її наявності, наприклад поки політика дійшла лише до частини ваших серверів, сторінка не перевіряється і знахідка залишається відкритою. Вона також закривається, якщо сторінка стає noindex або називає канонічною іншу сторінку, що не означає, що політику додано.
Обмеження та джерела
Перевірка бачить, чи є політика, а не те, чи вона сувора й що застосовує браузер. Вона читає лише HTML-сторінки й не бачить політики, доданої через JavaScript. Політика в <meta> на сторінці, HTML якої не має тегів <head>, не враховується, хоча браузери її застосували б.
Упевненість: Висока, бо дві відповіді поспіль зчитуються безпосередньо й мають збігатися.
Джерела
- web.dev, Короткий довідник із заголовків безпеки — описує Content Security Policy як додатковий шар захисту від міжсайтового скриптингу, рекомендує її для сайтів, що працюють із чутливими даними користувачів, і зазначає, що її можна задати в режимі лише звітування. Перевірено 28 вересня 2026.
Редакційна перевірка: 29 вересня 2026