HTTP Security Headers — невидимий захист якого у вас мабуть немає
Заголовки безпеки — це невидима броня вашого сайту. 90% сайтів їх не мають, бо ніхто не пояснив навіщо. Пояснюємо.
Кожного разу, коли хтось заходить на ваш сайт, між браузером відвідувача і вашим сервером відбувається "розмова". Браузер надсилає запит: "Дай мені сторінку". Сервер відповідає: "Ось сторінка" — і разом із нею надсилає десятки невидимих "інструкцій" — заголовків. Одні з цих заголовків технічні (тип файлу, розмір, кешування). Інші — це ваш захист від атак.
HTTP Security Headers — це спеціальні заголовки безпеки, які ваш сервер надсилає браузеру і які кажуть: "Ось як поводитись з нашим сайтом, щоб захистити наших користувачів". За даними SecurityHeaders.com, менше 10% сайтів мають їх правильно налаштованими.
Аналогія: заголовки як інструкції на упаковці
Уявіть, що ваш сайт — це посилка. Браузер клієнта — отримувач. Разом із вмістом посилки (HTML, текст, картинки) ви надсилаєте ярлики: "Зберігати в холоді", "Крихке", "Не перевертати". Ці ярлики кажуть, як поводитись із вмістом.
HTTP Security Headers — це ярлики безпеки: "Не дозволяй завантажувати наш сайт у чужі фрейми", "Не виконуй скрипти не з нашого домену", "Завжди використовуй HTTPS". Браузер читає ці ярлики і дотримується їх.
Ключові заголовки безпеки: що вони роблять
Clickjacking: що відбувається без X-Frame-Options
Clickjacking — атака, яку легко зрозуміти без технічних знань. Хакер створює шкідливий сайт і вставляє ваш сайт у прозорий фрейм поверх своєї сторінки. Відвідувач думає, що клікає на кнопку шкідливого сайту, але насправді клікає на вашому сайті.
Практичний приклад: жертва заходить на фішинговий сайт. Поверх нього у прозорому фреймі завантажений ваш інтернет-магазин з кнопкою "Купити". Жертва клікає — і робить замовлення на вашому сайті або надає дозвіл на якусь дію. Без її відома і бажання.
Один рядок налаштування на сервері: "X-Frame-Options: DENY" — і clickjacking стає неможливим для вашого сайту. Цей рядок займає 5 хвилин для розробника.
MITM-атака: що відбувається без HSTS
MITM (Man-In-The-Middle, "людина посередині") — атака, при якій зловмисник перехоплює трафік між клієнтом і вашим сервером. Особливо небезпечна у публічних Wi-Fi мережах.
Сценарій без HSTS: клієнт у кафе підключається до Wi-Fi (або до шкідливої точки доступу створеної хакером). Вводить вашу адресу. Браузер спочатку надсилає незахищений HTTP-запит. Хакер перехоплює і підміняє — відповідає від імені вашого сервера, але вже зі шкідливим контентом або збираючи дані.
З HSTS: браузер знає — цей сайт завжди використовує тільки HTTPS. Незахищений запит не відправляється взагалі. Перехоплювати нічого.
Що може статись без security headers: зведена таблиця ризиків
| Атака | Рівень ризику | Захищає заголовок |
|---|---|---|
| Clickjacking (підміна кліків) | Критично | X-Frame-Options |
| XSS через чужі скрипти | Критично | Content-Security-Policy |
| MITM (перехоплення трафіку) | Критично | HSTS |
| Виконання шкідливих файлів | Середній | X-Content-Type-Options |
| Витік даних через Referrer | Середній | Referrer-Policy |
| Несанкціонований доступ до камери/мікрофону | Середній | Permissions-Policy |
Як додати заголовки: що треба сказати розробнику
Налаштування заголовків безпеки — технічна задача для розробника або системного адміністратора. Зазвичай займає 1–3 години. Вони додаються в конфігурацію веб-сервера (Nginx, Apache) або в налаштування фреймворку.
Ваше завдання як власника: знати що ці заголовки потрібні, і перевіряти чи вони є. Rank Sentinel перевіряє наявність і правильність всіх ключових заголовків безпеки і показує у звіті яких не вистачає.
Готові захистити ваш сайт?
Перевірте заголовки безпеки вашого сайту→