js_challenge_bucket_duration

设置在 NGINX 中提示 JavaScript 挑战的时间段持续时间。

语法js_challenge_bucket_duration time;
默认值3600
上下文server, location
参数1

说明

js_challenge_bucket_duration 指令定义了在用户被允许访问受该挑战保护的资源之前,需要在多长时间内(以秒为单位)被提示完成 JavaScript 挑战。当用户访问启用了 JavaScript 挑战的 server 块中的资源时,NGINX 会检查用户是否在指定的时长内完成了该挑战。

如果用户在定义的 bucket_duration 内未完成该挑战,则会被提示重新尝试。此设置实际上控制了返回用户需要多久重新验证一次,在用户体验与 JavaScript 挑战提供的安全措施之间取得平衡。该指令可在 serverlocation 上下文中使用,允许对特定路径或整个服务器配置的挑战持续时间进行精细控制。默认值为 3600 秒,这意味着如果用户未完成挑战,系统将在一小时后再次提示他们。

较低的设置可能增强安全性,但也可能影响合法用户的体验;较高的设置则可能让恶意行为者在未验证的情况下获得更长时间的访问权限。管理员应根据所保护资源的敏感性以及合法用户的预期行为来决定理想的持续时间。

配置示例

server {
    js_challenge on;
    js_challenge_bucket_duration 1800;
    # Additional configuration...
}

将持续时间设置得非常短可能会让经常被重定向到挑战页面的用户感到沮丧。

如果在嵌套的 location 中使用不同的持续时间,请确保它们设置正确以避免出现意外行为。

← 返回所有指令