testcookie_secret

testcookie_secret 指令设置一个静态密钥,用于为 NGINX testcookie 机器人缓解模块计算挑战 cookie。

语法testcookie_secret string;
默认值none
上下文http, server, location
参数1

说明

testcookie_secret 指令对于建立一种安全的生成挑战 cookie 的机制至关重要,该机制用于区分人工流量和自动化机器人。该指令接受一个参数,该参数是一个字符串,理想情况下应至少 32 字节长以最大化安全性。建议使用更长的密钥,因为它有助于在服务器重启之间保持 cookie 的完整性,确保合法用户不会因为密钥更改导致的 cookie 重置而遭遇会话中断。

当该指令设置为 "random" 时,NGINX 会在每次服务器启动时生成一个新的密钥。尽管这在表面上看似更安全,但不推荐这样做,因为使用旧密钥生成的所有挑战 cookie 都会失效,导致合法用户在服务器重启后因 cookie 无法使用而出现访问问题。因此,建议使用一致的静态密钥,以在保护免受自动化请求的同时为用户提供稳定的体验。

testcookie_secret 指令应在 NGINX 配置文件中的 httpserverlocation 上下文中进行适当配置,以便根据所需的应用范围指定不同的配置。正确管理此参数有助于显著提升 testcookie 模块所采用的挑战/响应机制的效果。

配置示例

http {
    testcookie_secret "my_static_secret_12345678901234567890123456789012";
}

使用 "random" 作为密钥会在服务器重启时使所有现有的 Cookie 失效,从而影响合法用户。

确保密钥至少为 32 字节,以维持足够的安全性。

未指定密钥可能导致 Cookie 生成失败,从而使该缓解措施失效。

← 返回所有指令