- Compatibilité XF
- 2.3.x
- Description courte
- Adds Cap, a privacy-friendly self-hosted proof-of-work CAPTCHA for XenForo websites. No images or clicks required; runs entirely in the background without sending data to third parties. Requires your own server setup and a unique site key per forum. Setup involves creating a Docker container, setting up HTTPS, and configuring the add-on within XenForo's admin panel.
Créez le fichier docker-compose.yml sur le serveur qui va exécuter Cap.
Notez l'écouteur 127.0.0.1:3000:3000 : cela maintient Cap hors de l'internet publique, donc seuls votre proxy inversé peuvent le rejoindre. Si vous ne le mettez pas derrière un proxy inversé, utilisez "3000:3000" au lieu de cela, mais veillez à lire la section HTTPS d'abord.
Lancez-le :
Ce pas n'est pas optionnel si votre forum tourne sous HTTPS. Les navigateurs bloquent les demandes non sécurisées d'une page sécurisée, donc un forum https:// parlant à une instance http://Cap signifie que le widget ne charge jamais silencieusement et personne ne peut s'enregistrer.
Pointez un sous-domaine comme cap.yoursite.com vers le serveur et le proxyvez-le sur le port 3000. Un exemple en Nginx :
Créez un certificat avec Certbot pour le sous-domaine et vous êtes terminés. Les serveurs Apache, Caddy et Cloudflare Tunnel fonctionnent de manière équivalente.
3. Créez une clé de sitehttps://cap.yoursite.comet connectez-vous avec votre ADMIN_KEY.
Créez une nouvelle clé et nommez-la après le forum qui l'utilisera.
Copiez la clé de site et la clé secrète. La clé secrète est affichée lorsque vous sauvegardez maintenant.
La clé de site est publique et apparaît dans votre source de page. La clé secrète est utilisée uniquement pour la vérification entre serveur et ne doit jamais être envoyée aux visiteurs. Ne la partagez pas, et n'inséreriez pas son contenu dans un fil de support.
Part 2: Installez l’add-on
Panel administrateur → Add-ons → Installer/actualiser depuis le catalogue, téléchargez le zip.
Ou extrayez le zip et copiez les fichiers du dossier upload vers le racine de votre forum, puis installez Cap CAPTCHA à partir de la liste des add-ons.
Part 3: Configurez-le
Aller à Options → Options de base → Activer le CAPTCHA pour les invités et sélectionnez Utiliser Cap CAPTCHA. Trois champs apparaissent :
URL de l’instance Cap : votre URL de base du serveur Cap, sans tiret final, par exemplehttps://cap.yoursite.comCréer le site key : le clé que vous avez créé pour ce forum
Créer la clé secrète : la partie secrète liée à cette clé de site
Enregistrer, puis déconnecter ou ouvrir une nouvelle fenêtre privée et charger la page de création d'utilisateur. Le widget devrait apparaître et la vérification devrait passer.
Si vous choisissez Cap sans remplir aucun champ, l'add-on affiche un avertissement rouge dans le panneau administrateur indiquant que pas de CAPTCHA est rendu et chaque soumission du visiteur est acceptée. Si vous voyez cet avertissement, vous n'êtes pas encore protégé.
Comment ça fonctionne
Front-end : la template public captcha_cap_captcha affiche un <cap-widget> pointé vers {URL d'exécution}/{site key}/. Lorsqu'il est résolu, le widget ajoute un champ caché cap-token au formulaire.
Back-end : le token est vérifié côté serveur en envoyant une requête POST à {URL d'exécution}/{site key}/siteverify avec votre secret. La soumission est acceptée uniquement lorsque Cap répond {"success": true}. Les tokens sont uniques, donc les réessais échouent.
Toutes ces appels sont scannés par le site key, ce qui attribue chaque flux de trafic à son propre clé dans l'espace d'hébergement.
Connaissances à avoir
Il ouvre en mode ouvert par design. Conformément aux fournisseurs CAPTCHA intégrés de XenForo :
Si les clés sont vides, rien n'est rendu et tout passe.
Si votre serveur CAP est indisponible ou renvoie un 5xx, tout passe et l'erreur est loggée.
Cela permet d'éviter que la panne sur votre serveur CAP ne bloque les inscriptions des visiteurs. Le compromis est qu'un install défectueux ressemble exactement à une installation fonctionnelle du dehors, c'est pourquoi le message d'avertissement administrateur et l'enregistrement des erreurs existent. Si un CAPTCHA qui s'arrête ne vous cause pas plus de problèmes que les inscriptions tombant, changez la première chose ; il s'agit de quelques lignes dans Captcha/Cap.php.
Le script du widget charge depuis jsDelivr. L'addon télécharge @cap.js/widget depuis cdn.jsdelivr.net (pinned à une version exacte). Les navigateurs des visiteurs contactent donc jsDelivr sur les pages montrant le CAPTCHA. Si cela importe pour votre juridiction ou votre politique de confidentialité, téléchargez cap.min.js et déplacez-le quelque part sous votre racine du forum. Changez ensuite la ligne <xf:js src="..."> dans la template captcha_cap_captcha pour pointer vers votre copie. Tous les autres fonctionnent toujours. Je souligne cela publiquement car c'est une chose à objecter en tant qu'addon de sécurité auto-hébergée qui respecte la confidentialité.
Lien URL est construit à partir de vos options sauvegardées, il vous indique précisément quelle instance et clé le forum utilise réellement. Aucun étiquette n'est présente signifie que les options n'ont jamais été enregistrées. Si l'étiquette est là mais rien ne s'affiche, ouvrez la console de votre navigateur; une demande de contenu interdit ou un CDN bloqué apparaîtra là.
Le tableau des tâches montre aucun résolvant pour cette clé. Confirmez que l'étiquette au-dessus correspond bien à celle que vous pensez être correcte. Deux forums partageant la même clé de site sont comptés comme une seule instance, et la clé inutilisée reste à zéro.
Vérification échoue toujours. Vérifiez Setup → Journal des erreurs. Toutes les vérifications échouées sont enregistrées avec l'exact point d'URL qu'elle a essayé de joindre, ce qui permet de voir une URL d'instance ou une clé de site incorrecte là.
CLICHE_KEY est le mot de passe pour votre dashboard Cap. Il doit être long et aléatoire, au moins 32 caractères. Quiconque en a la clé peut créer et supprimer vos clefs de site.
Notez l'écouteur 127.0.0.1:3000:3000 : cela maintient Cap hors de l'internet publique, donc seuls votre proxy inversé peuvent le rejoindre. Si vous ne le mettez pas derrière un proxy inversé, utilisez "3000:3000" au lieu de cela, mais veillez à lire la section HTTPS d'abord.
Lancez-le :
Mettez-le derrière HTTPS
Ce pas n'est pas optionnel si votre forum tourne sous HTTPS. Les navigateurs bloquent les demandes non sécurisées d'une page sécurisée, donc un forum https:// parlant à une instance http://Cap signifie que le widget ne charge jamais silencieusement et personne ne peut s'enregistrer.
Pointez un sous-domaine comme cap.yoursite.com vers le serveur et le proxyvez-le sur le port 3000. Un exemple en Nginx :
Code:
server {
listen 443 ssl http2;
server_name cap.yoursite.com;
ssl_certificate /etc/letsencrypt/live/cap.yoursite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cap.yoursite.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3. Créez une clé de sitehttps://cap.yoursite.comet connectez-vous avec votre ADMIN_KEY.
Créez une nouvelle clé et nommez-la après le forum qui l'utilisera.
Copiez la clé de site et la clé secrète. La clé secrète est affichée lorsque vous sauvegardez maintenant.
La clé de site est publique et apparaît dans votre source de page. La clé secrète est utilisée uniquement pour la vérification entre serveur et ne doit jamais être envoyée aux visiteurs. Ne la partagez pas, et n'inséreriez pas son contenu dans un fil de support.
Part 2: Installez l’add-on
Panel administrateur → Add-ons → Installer/actualiser depuis le catalogue, téléchargez le zip.
Ou extrayez le zip et copiez les fichiers du dossier upload vers le racine de votre forum, puis installez Cap CAPTCHA à partir de la liste des add-ons.
Part 3: Configurez-le
Aller à Options → Options de base → Activer le CAPTCHA pour les invités et sélectionnez Utiliser Cap CAPTCHA. Trois champs apparaissent :
URL de l’instance Cap : votre URL de base du serveur Cap, sans tiret final, par exemplehttps://cap.yoursite.comCréer le site key : le clé que vous avez créé pour ce forum
Créer la clé secrète : la partie secrète liée à cette clé de site
Enregistrer, puis déconnecter ou ouvrir une nouvelle fenêtre privée et charger la page de création d'utilisateur. Le widget devrait apparaître et la vérification devrait passer.
Si vous choisissez Cap sans remplir aucun champ, l'add-on affiche un avertissement rouge dans le panneau administrateur indiquant que pas de CAPTCHA est rendu et chaque soumission du visiteur est acceptée. Si vous voyez cet avertissement, vous n'êtes pas encore protégé.
Comment ça fonctionne
Front-end : la template public captcha_cap_captcha affiche un <cap-widget> pointé vers {URL d'exécution}/{site key}/. Lorsqu'il est résolu, le widget ajoute un champ caché cap-token au formulaire.
Back-end : le token est vérifié côté serveur en envoyant une requête POST à {URL d'exécution}/{site key}/siteverify avec votre secret. La soumission est acceptée uniquement lorsque Cap répond {"success": true}. Les tokens sont uniques, donc les réessais échouent.
Toutes ces appels sont scannés par le site key, ce qui attribue chaque flux de trafic à son propre clé dans l'espace d'hébergement.
Connaissances à avoir
Il ouvre en mode ouvert par design. Conformément aux fournisseurs CAPTCHA intégrés de XenForo :
Si les clés sont vides, rien n'est rendu et tout passe.
Si votre serveur CAP est indisponible ou renvoie un 5xx, tout passe et l'erreur est loggée.
Cela permet d'éviter que la panne sur votre serveur CAP ne bloque les inscriptions des visiteurs. Le compromis est qu'un install défectueux ressemble exactement à une installation fonctionnelle du dehors, c'est pourquoi le message d'avertissement administrateur et l'enregistrement des erreurs existent. Si un CAPTCHA qui s'arrête ne vous cause pas plus de problèmes que les inscriptions tombant, changez la première chose ; il s'agit de quelques lignes dans Captcha/Cap.php.
Le script du widget charge depuis jsDelivr. L'addon télécharge @cap.js/widget depuis cdn.jsdelivr.net (pinned à une version exacte). Les navigateurs des visiteurs contactent donc jsDelivr sur les pages montrant le CAPTCHA. Si cela importe pour votre juridiction ou votre politique de confidentialité, téléchargez cap.min.js et déplacez-le quelque part sous votre racine du forum. Changez ensuite la ligne <xf:js src="..."> dans la template captcha_cap_captcha pour pointer vers votre copie. Tous les autres fonctionnent toujours. Je souligne cela publiquement car c'est une chose à objecter en tant qu'addon de sécurité auto-hébergée qui respecte la confidentialité.
HTML:
<cap-widget data-cap-api-endpoint="https://cap.yoursite.com/<site key>/"></cap-widget>
Le tableau des tâches montre aucun résolvant pour cette clé. Confirmez que l'étiquette au-dessus correspond bien à celle que vous pensez être correcte. Deux forums partageant la même clé de site sont comptés comme une seule instance, et la clé inutilisée reste à zéro.
Vérification échoue toujours. Vérifiez Setup → Journal des erreurs. Toutes les vérifications échouées sont enregistrées avec l'exact point d'URL qu'elle a essayé de joindre, ce qui permet de voir une URL d'instance ou une clé de site incorrecte là.