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

Отсутствует 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. Подробнее.