testcookie_refresh_encrypt_cookie
指令 `testcookie_refresh_encrypt_cookie` 控制 NGINX testcookie 机器人缓解模块中挑战 cookie 的加密。
说明
指令 testcookie_refresh_encrypt_cookie 在 NGINX testcookie 模块的上下文中使用,用于指定是否对发送给尝试访问受保护资源的用户的挑战 cookie 进行加密。启用后,该指令允许使用 AES-128 in CBC mode 对挑战 cookie 进行加密,为防止试图绕过挑战-响应机制的自动或脚本化请求提供额外的安全层。加密过程需要用户定义的密钥和初始化向量 (IV),以在保持 cookie 完整性的同时允许通过 JavaScript 在客户端进行解密。
该指令的主要参数是一个布尔标志 (on/off)。当设置为 'on' 时,用户初次请求期间生成的挑战 cookie 将被加密,使其对未授权的用户或机器人不可读。相反,设置为 'off' 则表示挑战 cookie 为明文,这可能更容易被利用。然而,必须在可用性和安全性之间取得平衡,因为加密 cookie 可能会使合法用户的客户端解析和调试过程变得复杂,从而导致他们不经意间遇到访问问题。
该指令可以在多种上下文中配置,例如 http、server 或 location,这使 NGINX 管理员可以根据特定的服务器或 location 要求应用 cookie 加密。将此指令与其他相关设置(如 testcookie_secret)正确配置,可通过防止在传输过程中对 cookie 值的未授权篡改来确保用户会话的完整性和安全性。
配置示例
http {
testcookie_refresh_encrypt_cookie on;
}
server {
location / {
# Other testcookie configurations
}
}确保加密参数(key & IV)已正确配置;否则 cookies 可能无法在客户端解密。
使用 'off' 可能会以明文暴露 challenge cookies,从而可能导致安全漏洞。
请记住,cookies 需要在客户端使用 JavaScript 正确解密以保持功能。