Cloudflare Turnstile
Airspace utilise Cloudflare Turnstile pour protéger les formulaires accessibles au public contre les bots et les abus automatisés. Turnstile fournit une protection de type CAPTCHA avec un minimum de friction pour l'utilisateur — la plupart des visiteurs ne verront jamais de défi.
Formulaires Protégés
Turnstile est actif sur les pages suivantes :
- Connexion — empêche les attaques par bourrage d'identifiants
- Inscription — empêche la création massive de comptes
- Intégration (création publique de tenant) — empêche l'approvisionnement automatisé de tenants
Configuration
1. Obtenir les Clés Turnstile
- Connectez-vous à votre tableau de bord Cloudflare
- Naviguez vers Turnstile dans la barre latérale
- Cliquez sur Ajouter un site
- Entrez le nom de votre site et le(s) domaine(s)
- Choisissez le mode du widget (Managed est recommandé)
- Copiez la Clé du Site et la Clé Secrète
2. Configurer les Variables d'Environnement
Ajoutez les lignes suivantes à votre fichier .env :
TURNSTILE_ENABLED=true
TURNSTILE_SITE_KEY=votre-cle-de-site-ici
TURNSTILE_SECRET_KEY=votre-cle-secrete-ici
3. Déployer
Aucune étape supplémentaire n'est nécessaire. Le widget Turnstile apparaîtra automatiquement sur les formulaires protégés.
Désactiver Turnstile
Pour désactiver Turnstile (par exemple, pour le développement), définissez :
TURNSTILE_ENABLED=false
Lorsque désactivé :
- Le widget ne s'affiche sur aucun formulaire
- La validation côté serveur est ignorée (passe toujours)
- Aucune requête n'est envoyée à Cloudflare
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| Le widget n'apparaît pas | TURNSTILE_ENABLED est false ou la clé du site est manquante | Vérifiez les valeurs dans .env |
| Erreur "Vérification CAPTCHA échouée" | Jeton expiré ou clé secrète invalide | Vérifiez que TURNSTILE_SECRET_KEY correspond à votre tableau de bord Cloudflare |
| Les formulaires fonctionnent mais pas de widget | JavaScript bloqué | Assurez-vous que challenges.cloudflare.com n'est pas bloqué par la CSP ou les bloqueurs de publicités |
| La vérification échoue après une longue inactivité de page | Les jetons Turnstile expirent après environ 5 minutes | Le widget se rafraîchit automatiquement ; si les problèmes persistent, rechargez la page |