js_challenge

`js_challenge` 指令在 NGINX 配置中启用基于 JavaScript 的工作量证明挑战,用于阻止机器人并验证真实用户。

语法js_challenge on | off;
默认值off
上下文server, location, if in server, if in location
参数flag

说明

js_challenge 指令是 NGINX Javascript challenge 模块的一部分,旨在实现一种工作量证明机制,帮助区分自动化机器人与合法用户。当在 server 或 location 上下文中启用此指令时,它会指示 NGINX 向访问者提供一个 JavaScript 挑战。用户必须成功完成该挑战才能访问内容。这种技术对于缓解诸如网页抓取或过量机器人流量等攻击特别有用,相较于传统 CAPTCHA 提供了更轻量的解决方案。

配置示例

server {
    js_challenge on;
    js_challenge_secret "your_secret";
    js_challenge_title "Please verify you're human";
    location / {
        # additional configurations
    }
}

确保用户的浏览器启用 cookie,因为禁用它们可能导致无限刷新问题。

该指令可能会导致性能问题,尤其是当用户通过刷新页面而不完成挑战来频繁使挑战失效时。

在反向代理后使用该指令时请小心,因为反向代理可能会向多个用户提供相同的挑战。

← 返回所有指令