Отсутствует default в hash-блоках (map, geo)¶
Gixy Check ID: hash_without_default
В блоках map и geo следует задавать безопасный default. Без него неизвестные ключи могут приводить к неожиданному состоянию и обходу контроля доступа.
Небезопасные примеры¶
# Нет default → неизвестные ключи ведут себя непредсказуемо
map $request_uri $allowed {
/admin 0;
}
# Нет default в geo
geo $block_client {
192.0.2.0/24 1;
}
Более безопасные альтернативы¶
# Явно задаём default
map $request_uri $allowed {
default 1; # по умолчанию запрещено
/admin 0; # разрешить только если явно задано дальше
}
# Явный default в geo
geo $block_client {
default 0; # по умолчанию не блокируем
192.0.2.0/24 1; # эти адреса блокируем
}
Выбирайте значения по принципу наименьших привилегий (при управлении доступом — по умолчанию запрет).
Зачем это важно¶
Явные default делают поведение предсказуемым и предотвращают случайные «дыры» при появлении новых ключей или необычных входных данных.
Укрепляйте NGINX с поддерживаемыми RPM
Используйте NGINX Extras от GetPageSpeed для постоянно обновляемого NGINX и модулей на RHEL/CentOS/Alma/Rocky. Подробнее.