testcookie_expires

`testcookie_expires` 指令设置用于 NGINX testcookie 机器人缓解模块中的测试挑战 cookie 的过期日期。

语法testcookie_expires "expires_value";
默认值"Fri, 31 Dec 2037 23:55:55 GMT"
上下文http, server, location
参数1

说明

testcookie_expires 指令定义了用于 NGINX testcookie 机器人缓解模块中挑战/响应身份验证的 cookie 的过期时间。该指令用于控制挑战 cookie 在用户浏览器中保持有效的时长,超过该时长即被视为过期。默认情况下,cookie 设置为在 2037 年 12 月 31 日 23:55:55 GMT 过期,这提供了较长的有效期。但管理员可以指定不同的过期日期以符合其安全策略,或更准确地为回访用户定制用户体验。

在配置此指令时,它接受单个参数,该参数必须以 HTTP Set-Cookie 头接受的格式表示为绝对过期日期。这提供了很大的灵活性;管理员可以为更频繁的挑战设置较短的过期时间,或为较少的交互设置较长的持续时间。然而,需要注意确保过期日期与预期的会话管理策略一致,同时对自动化机器人交互保持安全性。在大规模应用中,正确管理 cookie 过期可以增强安全性并确保遵守用户会话策略。

正确使用 testcookie_expires 指令有助于确定用户会被重新挑战的频率,使服务在对抗机器人时保持强健的防护,同时尽量减少对合法用户的干扰。为避免混淆和可能的错误,参数的格式必须严格遵守标准,因为不正确的设置可能导致 cookie 处理行为被错误配置。

配置示例

server {
    listen 80;
    server_name example.com;

    testcookie on;
    testcookie_expires "Tue, 30 Nov 2023 23:55:55 GMT";
    testcookie_name TCK;
    testcookie_domain example.com;
    # Other directives... 
}

确保到期日期的格式正确,以与 Set-Cookie 头部标准兼容;

将到期日期设置为过去的时间会导致 cookie 立即失效;

过短的过期时间可能会使合法用户感到沮丧,因为他们需要反复完成挑战。简单的测试需要了解用户的行为模式。

← 返回所有指令