Пожалуйста, помогите мне предотвратить "уязвимость внедрения заголовка хоста" в данном "Файл конфигурации Nginx"
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
proxy_pass http://IP_1/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
add_header Cache-Control "no-cache";
}
location /kuphubadmin/ {
proxy_pass http://IP_2/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
add_header Cache-Control "no-cache";
}}
Примечание. Указанный выше сервер используется в качестве прокси-сервера.
«Уязвимость внедрения заголовка хоста» означает, что ваш сервер принимает любой заголовок хоста, даже если это недопустимое имя хоста для любого из ваших веб-сайтов. В вашем случае вы настроили универсальную server
блок, который отвечает на любое имя хоста и отправляет все такие запросы вашему веб-приложению.
Это легко исправить в nginx.
Во-первых, вам нужно оставить в покое значение по умолчанию server
блок, поставляемый с nginx. Ни в коем случае не меняйте. Это перехватит запросы с недопустимыми заголовками Host и отправит им только безобидный документ «веб-сервер работает» или ошибку 403 Forbidden, или и то, и другое.
Во-вторых, вам нужно указать только действительные имена хостов для вашего сайта в server_name
директива вашего обычая server
блок. Не использовать _
. Например server_name example.com www.example.com;