testcookie_deny_keepalive

'testcookie_deny_keepalive' 指令会禁用未通过测试 cookie 验证的请求的 keep-alive 连接。

语法testcookie_deny_keepalive on;
默认值off
上下文http, server, location
参数1

说明

'testcookie_deny_keepalive' 指令是 NGINX testcookie 机器人缓解模块的一部分,旨在通过阻止未能成功完成 cookie 验证挑战的客户端使用持久连接(keep-alive)来增强安全性。该指令对于缓解可能绕过合法用户期望的正常请求-响应周期的自动化机器人流量尤其有用。

当通过将此指令设置为 'on' 来启用时,任何未通过 cookie 测试的客户端的 HTTP 请求将被拒绝使用 keep-alive 连接。这意味着服务器不会重用单个 TCP 连接来处理多次 HTTP 请求,而是在每次响应后关闭连接。该行为可以显著降低依赖于不重新建立连接即可快速连续发送请求的机器人的效率,从而减缓其抓取或攻击 Web 资源的尝试。

配置示例

http {
    
    server {
        
        location / {
            testcookie on;
            testcookie_deny_keepalive on;
            
            testcookie_session $remote_addr;
            testcookie_max_attempts 5;
            testcookie_fallback /error;
        }
    }
}

确保启用了 'testcookie' 指令,才能使 'testcookie_deny_keepalive' 指令生效。

在对性能敏感的环境中使用 'testcookie_deny_keepalive' 时要谨慎,因为它可能通过频繁关闭连接而增加资源消耗。

← 返回所有指令