js-challenge: NGINX Javascript Challenge-Modul
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-js-challenge
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-js-challenge
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_js_challenge_module.so;
Dieses Dokument beschreibt nginx-module-js-challenge v0.0.2 veröffentlicht am 21. August 2024.
Eine Anfrage für eine stabile Version existiert. Stimmen Sie hier ab.
ngx_http_js_challenge_module
Ein einfacher Javascript Proof-of-Work basierter Zugang für NGINX mit praktisch keinem Overhead.
Einfache Installation: Fügen Sie einfach load_module /path/to/ngx_http_js_challenge_module.so; zu Ihrer
nginx.conf-Datei hinzu und folgen Sie den Konfigurationsanweisungen.
Konfiguration
Einfache Konfiguration
server {
js_challenge on;
js_challenge_secret "ändere mich!";
# ...
}
Erweiterte Konfiguration
server {
js_challenge on;
js_challenge_secret "ändere mich!";
js_challenge_html /path/to/body.html;
js_challenge_bucket_duration 3600;
js_challenge_title "Überprüfung Ihres Browsers...";
location /static {
js_challenge off;
alias /static_files/;
}
location /sensitive {
js_challenge_bucket_duration 600;
#...
}
#...
}
js_challenge on|offAktiviert oder deaktiviert Javascript-Herausforderungen für diesen Konfigurationsblockjs_challenge_secret "secret"Geheimnis zur Generierung der Herausforderungen. STANDARD: "changeme"js_challenge_html "/path/to/file.html"Pfad zur HTML-Datei, die im<body>-Tag der interstitiellen Seite eingefügt werden solljs_challenge_title "title"Wird im<title>-Tag der interstitiellen Seite eingefügt. STANDARD: "Überprüfung Ihres Browsers..."js_challenge_bucket_duration timeIntervall zur Aufforderung zur Javascript-Herausforderung, in Sekunden. STANDARD: 3600
Bekannte Einschränkungen / TODO
- Benutzer mit deaktivierten Cookies werden in einer endlosen Aktualisierungsschleife feststecken (TODO: Umleitung mit einem bekannten Abfrageparameter, wenn kein Cookie angegeben ist, aber das Abfrageargument gesetzt ist, eine Fehlerseite anzeigen)
- Wenn NGINX hinter einem Reverse-Proxy/Lastenausgleich steht, wird dieselbe Herausforderung an verschiedene Benutzer gesendet und/oder das Antwort-Cookie wird ungültig, wenn der Benutzer zu einem anderen Server umgeleitet wird. (TODO: Verwenden Sie den x-real-ip-Header, wenn verfügbar)
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-js-challenge.