memc_cmds_allowed
Директива `memc_cmds_allowed` задаёт список допустимых команд memcached в зависимости от типа HTTP-запроса.
Описание
Директива 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 при базовых операциях.