Strict-Transport-Security (HSTS) — это механизм безопасности, который позволяет веб-сайтам объявить браузерам, что они должны взаимодействовать только через HTTPS. Это помогает предотвратить атаки, такие как downgrade-атаки, когда злоумышленник пытается заставить пользователя использовать небезопасное HTTP-соединение.Как работает HSTS
Когда браузер получает заголовок HSTS от сервера, он запоминает, что этот сайт должен всегда открываться через HTTPS. В течение указанного времени (например, 1 год) браузер будет автоматически перенаправлять все запросы к этому сайту на HTTPS, даже если пользователь вводит HTTP-адрес.
Формат заголовка HSTS:
Strict-Transport-Security: max-age=<seconds>; includeSubDomains; preload;max-age: Указывает, как долго браузер должен помнить, что сайт доступен только по HTTPS (в секундах).includeSubDomains: Указывает, что HSTS применяется ко всем поддоменам сайта.preload: Указывает, что сайт участвует в программе preload HSTS, что позволяет браузерам заранее знать, что сайт всегда должен использовать HTTPS.
Пример использования:
server {
listen 443 ssl;
server_name example.com;
# SSL-контекст
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# Добавляем заголовок HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# Остальные настройки сервера
...
}Рекомендации по использованию HSTS
- Включите HTTPS: Убедитесь, что ваш сайт доступен по HTTPS и что у вас есть правильно настроенный SSL-сертификат.
- Настройте перенаправление: Настройте перенаправление всех HTTP-запросов на HTTPS, чтобы пользователи всегда использовали безопасное соединение.
- Используйте
includeSubDomains: Если у вас есть поддомены, обязательно включите этот параметр, чтобы HSTS применялся ко всем поддоменам. - Рассмотрите
preload: Если вы уверены, что ваш сайт всегда будет использовать HTTPS, рассмотрите возможность добавления его в список preload HSTS. Это позволит браузерам заранее знать, что сайт всегда должен использовать HTTPS.
Заголовок
Strict-Transport-Security — это важный инструмент для повышения безопасности вашего сайта. Он помогает предотвратить атаки, направленные на снижение уровня безопасности, и обеспечивает, что пользователи всегда будут использовать безопасное соединение.