Довідник термінів / Content-Security-Policy (CSP)
Content-Security-Policy (CSP)
Content-Security-Policy (CSP) - це HTTP-заголовок, який задає білий список джерел, звідки сторінці дозволено вантажити скрипти, стилі, картинки, шрифти та інші ресурси. Усе, чого немає в списку, браузер блокує. Це головний захист від XSS - впровадження чужого коду на вашу сторінку.
Перевірте свій сайт
Політика складається з директив: script-src керує скриптами, style-src - стилями, img-src - зображеннями, а default-src задає значення за замовчуванням для решти. У кожній директиві перелічені дозволені джерела: 'self' (свій домен), конкретні хости або 'none'.
Коли браузер бачить ресурс поза списком, наприклад скрипт, який вставив зловмисник через вразливість, він просто не виконує його. Тому навіть якщо XSS-діру знайдено, вкрадений код не запуститься, бо його джерело не дозволене.
CSP - найпотужніший і водночас найскладніший security-заголовок. Надто сувора політика ламає власні скрипти й аналітику, надто м'яка (наприклад, з 'unsafe-inline') майже не захищає. Тому політику збирають поступово: спочатку в режимі Content-Security-Policy-Report-Only, який лише звітує про порушення, не блокуючи їх.
Приклад
Content-Security-Policy: default-src 'self'; script-src 'self' https://apis.example.com; object-src 'none'
Часті помилки
- Додають 'unsafe-inline' і 'unsafe-eval' у script-src, щоб «нарешті запрацювало», і зводять захист від XSS майже нанівець.
- Вмикають сувору політику одразу на проді без режиму Report-Only і ламають власні скрипти, стилі та аналітику.
- Плутають CSP з CORS. CSP каже, що дозволено вантажити вашій сторінці; CORS - хто може читати відповідь вашого API. Це різні механізми.
- Задають script-src, але забувають default-src або object-src і залишають лазівки для інших типів ресурсів.
Повʼязані терміни
Знайшли проблеми?
Повільний хостинг, проблеми з SSL або сайт часто лежить? Переїжджайте на TomisHost: швидкий хостинг з безкоштовним SSL, щоденними бекапами та допомогою з переносом.
Хостинг TomisHost