← БлогБезпека

HTTP Security Headers: що це і чому відсутність цих 6 рядків коштує вам безпеки

CSP, HSTS, X-Frame-Options — більшість сайтів їх не мають. Пояснюємо простою мовою що робить кожен заголовок і від яких атак захищає.

3 лютого 2025 р.· 8 хв читання

Що таке HTTP Security Headers

Коли браузер завантажує вашу сторінку, сервер разом з HTML надсилає набір HTTP-заголовків — метаданих, які кажуть браузеру як поводитись з контентом. Більшість заголовків технічні (тип контенту, кешування), але є група заголовків безпеки, які захищають відвідувачів від цілого класу атак. За відсутність цих заголовків Mozilla Observatory і Qualys SSL Labs знижують оцінку безпеки сайту до F.

1. Content-Security-Policy (CSP) — король заголовків безпеки

CSP каже браузеру звідки дозволено завантажувати скрипти, стилі, зображення та інші ресурси. Без CSP зловмисник, який знайшов XSS-вразливість на вашому сайті, може виконати будь-який JavaScript. З CSP — навіть успішна XSS-атака не зможе завантажити зовнішній скрипт.

Базовий CSP для WordPress: Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://www.google-analytics.com; img-src 'self' data: https:. Налаштування CSP — це баланс між безпекою і функціональністю, але навіть базовий CSP краще, ніж жодного.

2. Strict-Transport-Security (HSTS)

HSTS каже браузеру: «завжди використовуй HTTPS для цього домену, навіть якщо користувач набрав http://». Без HSTS можлива атака SSL Stripping: зловмисник перехоплює перший HTTP-запит ще до редиректу на HTTPS. Рекомендований max-age — 1 рік (31536000 секунд).

3. X-Frame-Options — захист від clickjacking

Clickjacking — атака де зловмисник вбудовує ваш сайт у прозорий iframe поверх свого. Відвідувач думає, що натискає кнопку на чужому сайті, але насправді взаємодіє з вашим — наприклад, підтверджує переказ коштів або змінює налаштування. X-Frame-Options: DENY забороняє будь-яке вбудовування.

Як перевірити заголовки свого сайту

Найпростіший спосіб — securityheaders.com: вводите URL і отримуєте оцінку від A+ до F з детальним поясненням. Або відкрийте DevTools → Network → клікніть на перший запит → вкладка Headers → Response Headers. Rank Sentinel перевіряє всі заголовки безпеки щотижня і сповіщає якщо щось зникло після оновлення сервера.