Как настроить HTTP Headers
HTTP Headers транслируют браузеру и компьютеру пользователя, насколько безопасным является веб-ресурс. Наличие таких настроенных HTTP заголовков повышает безопасность и повышает траст сайта в глазах ПС.
Как правило, стандартная ситуация после анализа HTTP Headers неудовлетворительная для 90% ресурсов в ру сегменте. И выглядит она примерно так:
Если проверка наличия HTTP заголовков показала, что сервером не отдаются важные HTTP Headers, требуется внести коррективы.
Итак, пойдём от основного
1. Должен быть настроен HSTS. Т.е. подключение к вашему сайту и передача данных осуществляется только по безопасному протоколу. Настройка данного заголовка полностью избавляет нас от возможных подключений через http.
2. Пропишите CSP (Content-Security-Policy). Настроенный CSP поможет предотвратить определенные типы атак, включая XSS атаки и атаки с распространением вредоносных данных и вирусных программ.
Здесь вам нужно перечислить допускаемые ресурсы к загрузке данных на сервер, все остальные же будут отсечены, как небезопасные
Стандартные значения для выполнения условий:
или *Content-Security-Policy: upgrade-insecure-requests
3. X-XSS-Protection. Защита от XSS (cross site scripting) атак
4. X-Frame-Options. Нужен, чтобы не предоставлять доступ злоумышленникам к демонстрации по средствам iframe, но при установлении заголовка не забывайте, что есть и полезные программы, которые используют ваши iframe.
Здесь я советую устанавливать значение заголовку "X-Frame-Options: SAMEORIGIN" и добавлять исключения. Ниже пример для исключения Яндекс.Метрики.
5. X-Content-Type-Options. Не до конца понимаю, кому и как нужно изменять и интерпретировать данные на сайтах. Однако, понятно, что это может привести к "поломке" сайта. Если хотите обезопасить себя от демонстрации пустого экрана вашим пользователям, то установите
6. Referrer-Policy.
7. Определите значения для Cookies
Какие бы значения для Cookie вы не присваивали и хранили, не забывайте в конце "HTTPOnly; Secure".
Приведённых значений вам хватит, чтобы получить высшую оценку и соответствовать, всем требования ПС в части безопасности.
Если вы захотите ещё поработать с безопасностью сайта, то дальше обратите своё внимание на такие заголовки как:
- Public Key Pinning
- Feature-Policy
- Access-Control-Allow
P.S. Есть ресурс, где все значения для HTTP Headers прописаны со значениями их важности для сайтов. И при аудите вы видите, сколько процентов, а главное каких заголовков, вам не хватает, чтобы ваш сайт был безопасным. Знаете такой ресурс?