js_challenge

Директива `js_challenge` включает механизмы proof-of-work на основе JavaScript, которые отпугивают ботов и подтверждают, что пользователи в конфигурациях NGINX — люди.

Синтаксисjs_challenge on | off;
По умолчаниюoff
Контекстserver, location, if in server, if in location
Аргументыflag

Описание

Директива js_challenge является частью модуля NGINX Javascript challenge, предназначенного для реализации механизма proof-of-work, который помогает отличать автоматизированных ботов от реальных пользователей. Когда эта директива включена в контексте server или location, она заставляет NGINX отправлять посетителям JavaScript-челлендж. Пользователи должны успешно пройти этот челлендж, чтобы получить доступ к содержимому. Эта техника особенно полезна для уменьшения таких атак, как web scraping или чрезмерный бот-трафик, предлагая более лёгкое решение по сравнению с традиционной CAPTCHA.

Пример конфига

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

Убедитесь, что cookies включены в браузере пользователя, так как их отключение может привести к бесконечной перезагрузке страницы.

Директива может вызывать проблемы с производительностью, если пользователи часто аннулируют challenge, обновляя страницу, не завершив его.

Будьте осторожны при использовании этой директивы за reverse proxies, поскольку они могут выдавать один и тот же challenge нескольким пользователям.

← Ко всем директивам