Настраиваем 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';



[endtxt]




RSS



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


2020-05-29T08:00:22
Nginx