Посібники

Як виправити заголовки безпеки (CSP, HSTS)

Відсутність заголовків безпеки залишає веб-додатки вразливими до міжсайтового скриптингу (XSS), клікджекінгу, пониження протоколу та витоку даних. Їх виправлення вимагає точного налаштування веб-сервера.

Коротка відповідь

Впровадьте Strict-Transport-Security з терміном один рік та preload, налаштуйте суворий Content-Security-Policy для скриптів та фреймів, додайте X-Content-Type-Options: nosniff та frame-ancestors 'none'.

Діагностика відсутніх заголовків відповіді

Перед зміною конфігурації веб-сервера перевірте поточні HTTP-заголовки за допомогою curl -IL або автоматизованого сканера. Визначте, де саме завершується TLS і формуються заголовки: на веб-сервері (Nginx, Apache), зворотному проксі або CDN. Переконайтеся, що заголовки не видаляються проміжними шлюзами.

Безпечне налаштування Strict-Transport-Security (HSTS)

HSTS примушує браузери звертатися до сайту виключно через захищений протокол HTTPS, блокуючи спроби перехоплення трафіку. Почніть тестування з max-age=86400 (один день). Після перевірки всіх піддоменів і ресурсів встановіть робочі параметри: max-age=31536000; includeSubDomains; preload. Ніколи не встановлюйте max-age=0 у робочому середовищі.

Побудова суворої Content Security Policy (CSP)

CSP обмежує джерела завантаження та виконання коду в браузері. Розпочніть із заголовка Content-Security-Policy-Report-Only з директивою report-to для аудиту порушень без ризику блокування користувачів. Визначте default-src 'self', script-src 'self' з nonces або SHA-256 хешами замість 'unsafe-inline', заблокуйте плагіни object-src 'none' та встановіть frame-ancestors 'none'.

Захист від клікджекінгу, MIME-sniffing та витоку реферера

Захистіть користувачів від атак через приховані iframe директивою frame-ancestors 'none' та резервним X-Frame-Options: DENY. Забороніть браузеру небезпечно вгадувати MIME-типи за допомогою X-Content-Type-Options: nosniff. Обмежте передачу шляхів у зовнішніх посиланнях через Referrer-Policy: strict-origin-when-cross-origin.

Конфігурація сервера та фінальна валідація

У Nginx директиви додаються всередині блоку HTTPS-сервера через add_header з прапорцем always (наприклад: add_header X-Content-Type-Options "nosniff" always;). В Apache використовуйте директиви Header always set у mod_headers. Після збереження перезавантажте конфігурацію сервера та протестуйте сайт онлайн-сканером.

Заголовки безпеки: HTTPS, CSP, захист фреймів, MIME, referrer та ізоляція браузера.

Запустити безкоштовний аудит →

Запитання

Часті запитання

Чи можна одразу увімкнути HSTS preload для основного домену?

Ні. Спочатку протестуйте заголовок Strict-Transport-Security зі значенням max-age=86400 (один день) і перевірте працездатність усіх піддоменів за HTTPS, перш ніж подавати домен до списку hstspreload.org з max-age=31536000.

Як безпечно налаштувати Content Security Policy без блокування сторонніх скриптів?

Спочатку увімкніть заголовок Content-Security-Policy-Report-Only для збору звітів про порушення, узгодьте дозволені джерела та застосуйте одноразові nonces або хеші перед повним увімкненням політики.