Mastodon Mastodon Mastodon Mastodon

Content Security Policy

Оновлено: · CyberSecureFox Editorial Team

Content Security Policy (CSP) — механізм захисту в браузері, за допомогою якого сайт зазначає, звідки дозволено завантажувати скрипти, стилі, фрейми та інший вміст, обмежуючи наслідки атак упровадження.

Як працює CSP

Сервер передає політику в заголовку відповіді HTTPContent-Security-Policy. Після цього браузер відмовляється завантажувати чи виконувати все, що політика не дозволяє. Важливі директиви:

  • default-src і script-src — дозволені джерела вмісту та JavaScript; вбудовані скрипти блокуються, якщо не мають відповідного nonce чи хешу;
  • ‘strict-dynamic’ — довіра до скриптів, завантажених уже довіреними скриптами, що робить політики на основі nonce практичними;
  • frame-ancestors — які сайти можуть вбудовувати сторінку у фрейм;
  • connect-src і form-action — куди сторінка може надсилати дані;
  • report-to — куди надсилаються звіти про порушення.

Українською CSP іноді називають політикою безпеки вмісту. Заголовок Content-Security-Policy-Report-Only дає змогу перевірити політику, нічого не блокуючи. CSP стандартизовано W3C; актуальна версія — Level 3.

Чому CSP важлива

CSP — додатковий ешелон захисту від міжсайтового скриптингу: навіть якщо зловмиснику вдалося впровадити тег script, браузер його не виконає. Директива frame-ancestors запобігає клікджекінгу, а обмеження адрес для з’єднань заважає скімерам формджекінгу надсилати викрадені дані карток на домени зловмисників. Утім, політика хороша рівно настільки, наскільки хороші її правила: дозвіл ‘unsafe-inline’ або цілих CDN-доменів часто робить обхід тривіальним.

Рекомендації

  • Віддавати перевагу суворим політикам на основі nonce чи хешів, а не довгим білим спискам доменів.
  • Уникати ‘unsafe-inline’ та ‘unsafe-eval’.
  • Спершу запроваджувати політику в режимі report-only і відстежувати звіти про порушення.
  • Розглядати CSP як доповнення до екранування виводу й перевірки вхідних даних, а не як їхню заміну.
Синоніми:
Content-Security-Policy, політика безпеки вмісту, CSP-заголовок, CSP-політика