Що таке 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 перевіряє всі заголовки безпеки щотижня і сповіщає якщо щось зникло після оновлення сервера.