memc_cmds_allowed

Директива `memc_cmds_allowed` задаёт список допустимых команд memcached в зависимости от типа HTTP-запроса.

Синтаксисmemc_cmds_allowed cmd1 cmd2 ...;
По умолчаниюnone
Контекстhttp, server, location, if in location
Аргументы1+

Описание

Директива memc_cmds_allowed позволяет задать допустимые команды memcached для разных HTTP-методов при взаимодействии с сервером memcached через модуль ngx_memc. Она принимает один или несколько параметров, определяющих команды, разрешённые во время обработки запроса, что повышает безопасность за счёт ограничения операций только перечисленными командами. Например, в зависимости от требований приложения можно разрешить только GET, SET и DELETE, запрещая остальные.

Директива может быть задана на разных уровнях конфигурации NGINX, включая контексты http, server и location. При обработке запроса конфигурация использует проверки команд, определённые в memc_cmds_allowed, чтобы определить, допустима ли конкретная операция. Если запрошена команда, не входящая в список разрешённых, NGINX вернёт ошибку вместо попытки связаться с сервером memcached. Это защищает от несанкционированных операций, которые могли бы привести к нарушению целостности данных.

На практике директива повышает безопасность сервера, обеспечивая выполнение только явно определённых команд и уменьшая поверхность атаки, которую злоумышленники могли бы использовать для неавторизованных действий через HTTP-запросы.

Пример конфига

location /foo {
    set $memc_key $arg_key;
    memc_cmds_allowed get set delete;
    memc_pass 127.0.0.1:11211;
}

Убедитесь, что разрешённые команды соответствуют HTTP-методам, используемым вашим приложением, чтобы предотвратить неожиданные ошибки.

Если оставить memc_cmds_allowed неустановленным, все команды будут запрещены, что может привести к ошибкам 403 Forbidden при базовых операциях.

← Ко всем директивам