memc_cmds_allowed

指令 `memc_cmds_allowed` 指定了基于 HTTP 请求类型的允许的 memcached 命令列表。

语法memc_cmds_allowed cmd1 cmd2 ...;
默认值none
上下文http, server, location, if in location
参数1+

说明

memc_cmds_allowed 指令允许在通过 ngx_memc 模块与 memcached 服务器交互时,为不同的 HTTP 方法配置可允许的 memcached 命令。它接受一个或多个参数,定义在请求期间允许的命令,通过将操作限制为仅那些被指定的命令来提高安全性。例如,可以根据应用需求只允许 GETSETDELETE 命令,同时禁止其他命令。

该指令可以在 NGINX 配置的不同层级中指定,包括 httpserverlocation 上下文。当请求被处理时,配置会使用 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 methods 相匹配,以防止意外错误。

如果未设置 memc_cmds_allowed,则所有命令将被禁止,这可能会导致基本操作出现 403 Forbidden 错误。

← 返回所有指令