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. Подробнее.