Перейти к содержанию

proxy_pass с путём нормализует/декодирует путь

Gixy Check ID: proxy_pass_normalized

Если в proxy_pass указан URL с путём, nginx будет нормализовать и декодировать путь запроса перед отправкой на бэкенд. Это может менять семантику исходного пути и приводить к уязвимостям.

Небезопасный пример

# Нормализация/декодирование могут менять смысл
location /api/ {
    proxy_pass http://backend/api/;
}

Более безопасные варианты

  • Избегать путей в proxy_pass: указывать бэкенд без пути и управлять склейкой в location;
  • Жёстко валидировать и ограничивать пользовательские пути;
  • Дополнительно проверять пути и доступ на стороне бэкенда.

Зачем это важно

Нормализация/декодирование пути на прокси-слое может приводить к обходам проверок и двусмысленности. Держите обработку путей простой и однозначной.

Укрепляйте NGINX с поддерживаемыми RPM

Используйте NGINX Extras от GetPageSpeed для постоянно обновляемого NGINX и модулей на RHEL/CentOS/Alma/Rocky. Подробнее.