Security Headers за 5 минут
Браузер смотрит не только на HTML, но и на HTTP-заголовки ответа. Без HSTS и X-Frame-Options сайт «работает», но легче кликнуть на phishing-редирект или встроить страницу во фрейм. Это baseline, не пентест.
Серия «Периметр VPS»: 404 в access.log → DNSBL → этот чеклист.
Проверка одной командой
curl -sI https://example.com | grep -iE 'strict-transport|x-frame|x-content|referrer-policy|content-security|permissions-policy'
Подставьте свой домен. Если вывод пустой — заголовков нет или почти нет.
Связка: SSL и код ответа снаружи — site-check. Заголовки безопасности смотрите
curl -I (или DevTools → Network → Response Headers).Минимум, который стоит иметь
| Заголовок | Зачем | Ориентир |
|---|---|---|
Strict-Transport-Security | Браузер не откатывается на HTTP | max-age=31536000; includeSubDomains |
X-Frame-Options | Не встраивать в чужой iframe (clickjacking) | SAMEORIGIN или DENY |
X-Content-Type-Options | Не угадывать MIME | nosniff |
Referrer-Policy | Меньше утечки URL в Referer | strict-origin-when-cross-origin |
Content-Security-Policy | Ограничить скрипты/источники | Сначала Report-Only, потом enforce |
Permissions-Policy (бывший Feature-Policy) — по желанию: камера, геолокация и т.п.
Пример для nginx
В блок server { … } (или в include):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# CSP — осторожно: легко сломать админку Bitrix / аналитику
# add_header Content-Security-Policy "default-src 'self'; ..." always;
sudo nginx -t && sudo systemctl reload nginx
curl -sI https://ваш-домен.ru | grep -iE 'strict-transport|x-frame|x-content|referrer-policy'
CSP: не копируйте жёсткую политику с чужого сайта вслепую.
Начните с
Content-Security-Policy-Report-Only, посмотрите отчёты, потом уже enforce.Что это не заменяет
- AuthZ / «чужой id» — отдельный гайд
- Секреты в репо и debug на prod — чеклист 15 мин
- Брутфорс SSH — fail2ban + ключи
- Uptime и SSL — мониторинг / site-check
Чеклист на 5 минут
curl -sI https://…— есть ли HSTS и X-Frame-Options- HTTPS и редирект с HTTP (иначе HSTS почти бесполезен)
- Добавить 3–4 заголовка в nginx, reload
- Проверить главную и админку: ничего не сломалось
- CSP — только если готовы отладить