Сегодня в статье поговорим как Настроить 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';

[endtxt]

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

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

5 2 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять