Настраиваем HTTP заголовки WEB-сервера Nginx

Сегодня в статье поговорим как Настроить HTTP заголовки WEB-сервера Nginx и обезопасить ваш сервер от различных атак.

HTTP заголовки WEB-сервера Nginx

Для начала давайте откроем конфигурационный файл WEB сервера Nginx

sudo nano /etc/nginx/nginx.conf

Найдите раздел HTTP, в этом разделе определяются конфигурации для HttpCoreModule Nginx. Добавьте следующую директиву:

server_tokens off;

Это запретит Nginx отправлять номера версий в заголовке HTTP.

Перезагрузите конфигурацию Nginx Чтобы применить это изменение:

sudo service nginx reload

X-XSS-Protection

Заголовок X-XSS-Protection может предотвратить некоторые XSS-атаки («межсайтовый скриптинг»), он совместим с IE 8+, Chrome, Opera, Safari и Android.

Добавьте следующее в nginx.conf в разделе HTTP:

add_header X-XSS-Protection "1; mode=block";

X-Frame-Options

Заголовок X-Frame-Options позволяет снизить уязвимость вашего сайта для кликджекинг-атак. Этот заголовок служит инструкцией для браузера не загружать вашу страницу в frame/iframe. Не все браузеры поддерживают этот вариант, так что проверьте заголовок на совместимость перед тем, как его добавлять.

Добавьте следующее в nginx в директиве Server обычно она находится в конфигурационном файле сайта:

add_header X-Frame-Options “DENY”;

X-Content-Type-Options

Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.

Добавьте следующую строку в файл nginx в директиве Server:

add_header X-Content-Type-Options nosniff;

Content Security Policy

Чтобы предотвратить XSS-атаки, кликджекинг, внедрение кода, можно добавить заголовок ответа Content Security Policy (CSP). CSP содержит инструкции о загрузке контента из разрешенных источников.

Добавьте следующее в секцию Server в файле nginx.conf:

add_header Content-Security-Policy "default-src 'self';";

Если после внесения данной директивы сайт стал отображаться не правильно, то вам необходимо :

РНР

По соображениям безопасности сервера рекомендуется отключить или скрыть информацию от злоумышленников, которые могут быть нацелены на ваш сервер, желая узнать, используете ли вы PHP или нет.

sudo nano /etc/php/7.4/fpm/php.ini

Найдите ключевое слово expose_php и установите его значение в Off:

 expose_php = off

Если вы используете PHP как FPM, то вам нужно будет перезагрузить PHP-FPM:

sudo service php-fpm reload

После перезагрузки заголовок ответа X-Powered-By: PHP/7.4 должен отсутствовать

Если не помогло, то прописываем в nginx.conf следующее

proxy_hide_header X-Powered-By;
# или
#more_clear_headers 'X-Powered-By';
Если есть вопросы, то пишем в комментариях.

RSS

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
Просмотреть все комментарии