Une case à cocher devant vos formulaires.
Rien devant vos clients.
Placez une case « Je ne suis pas un robot » sur vos propres formulaires et pages, et un contrôle côté origine devant tout ce que vous hébergez avec Xuda. Il n'escalade vers un challenge visuel, puis vers un contrôle IA, que lorsque les signaux du visiteur paraissent automatisés.
Niveaux d'escalade · la plupart des visiteurs ne quittent jamais le premier
Fournisseurs de captcha dans le chemin · construit en interne
Palier couvrant vos propres formulaires et les cibles hébergées par Xuda
Bits de zéro en tête de preuve de travail, par défaut
Les bots devraient travailler plus dur. Pas les clients.
La plupart des contrôles traitent chaque visiteur de la même façon : plissez les yeux devant une image, prouvez-vous, réessayez. Xuda Bot Protection commence par une case à cocher et un ensemble de signaux que le navigateur du visiteur révèle gratuitement. Si ceux-ci paraissent humains, c'est terminé. Ce n'est que quand ils paraissent automatisés que quelqu'un voit un challenge visuel, et ce n'est qu'après cela qu'une IA intervient.
Il est construit en interne. Il n'y a aucun fournisseur de captcha derrière, aucun compte à ouvrir ailleurs, et rien concernant vos visiteurs n'est remis à un service tiers pour notation.
Quatre mouvements de rien à protégé.
Bot Protection se trouve dans le groupe MODULES de votre menu de compte. Rien n'est activé tant que vous n'avez pas choisi un palier, et Gratuit en est un vrai.
- 01
Choisissez un palier
Ouvrez Protection anti-bot et choisissez parmi l'échelle à quatre cartes. Gratuit est une activation, pas une hypothèse : appuyez sur Activer et vous ne devez rien. Les paliers payants indiquent le montant clairement avant confirmation, et ajoutent une ligne à la facture que vous recevez déjà.
- 02
Activez le widget et enregistrez
Sur l'onglet Configuration, activez la protection anti-bot et appuyez sur Enregistrer les modifications. Cette première sauvegarde génère votre clé de site publique et votre clé secrète privée. Réglez l'Agressivité sur Faible, Moyenne ou Élevée pendant que vous y êtes.
- 03
Collez l'extrait, vérifiez sur votre serveur
Copiez la balise de script, ou le div de montage en ligne si vous voulez placer la case à cocher vous-même. Puis envoyez le secret et le jeton de réponse du formulaire au point de terminaison de vérification et relisez success, score et level_reached.
- 04
Armez tout ce que vous hébergez avec Xuda
Sur l'onglet Protection, appuyez sur Ajouter une protection, choisissez un VPS, déploiement, datacenter ou répartiteur de charge, et basculez Armé. L'origine commence à appliquer dans une actualisation de 30 secondes, et désarmer est le même commutateur.
Un seul contrôle, deux endroits où le placer.
Un widget pour les formulaires et pages que vous hébergez vous-même, et une barrière côté origine pour tout ce qui tourne sur Xuda. Même échelle, mêmes clés, même tableau de bord.
Une case à cocher, pas un parcours d'obstacles
Le niveau 0 est un clic plus un ensemble de signaux que le navigateur révèle de toute façon. Le réussir et il n'y a aucun puzzle, aucune grille de bus, aucune seconde tentative. C'est toute l'expérience pour la plupart des gens.
Des signaux notés avant que rien ne soit affiché
Comptes de pointeur, de touches et de défilement, présence tactile, WebGL et canvas, concurrence matérielle, langues, fuseau horaire, drapeaux d'automatisation et temps de présence deviennent une probabilité humaine unique, avec des raisons nommées comme no_interaction, webdriver, headless et instant_click.
Le navigateur paie avant d'être cru
Chaque visiteur résout un puzzle de preuve de travail SHA-256, 16 bits de zéro en tête par défaut, un bit plus difficile en agressivité Moyenne et deux en Élevée. Bon marché une fois, coûteux à volume de bots.
Des challenges visuels sans bibliothèque photo
Le niveau 1 est une grille de 9 tuiles dessinée en interne en SVG : cinq formes, huit couleurs, au moins deux tuiles correctes, présenté comme « Sélectionnez chaque image qui montre un ... ». Rien n'est récupéré d'un tiers et rien n'est extrait de vos utilisateurs.
L'IA comme dernier mot, pas le premier
Le niveau 2 demande un verdict de risque humain, bot ou limite. Un visiteur limite reçoit une question de bon sens générée avec une réponse attendue hachée. Si le score est injoignable, le visiteur est traité comme limite plutôt qu'échoué.
Des jetons de passage à usage unique et de courte durée
Une réussite est un jeton signé qui vit deux minutes et est brûlé la première fois que votre serveur le vérifie. Rejouer le même jeton et la réponse est expiré-ou-dupliqué. Il n'y a aucune session côté serveur à synchroniser.
Remplacement direct pour le code que vous avez déjà écrit
L'appel de vérification prend un secret et une réponse et répond avec success, score, level_reached, hostname, challenge_ts et des codes d'erreur. Le code backend existant n'a généralement besoin que d'un changement d'URL.
Application côté origine, aucune périphérie supplémentaire
Les cibles armées sont appliquées par le routeur Xuda lui-même. Un visiteur validé porte un cookie httpOnly, sécurisé, SameSite=Lax pour la fenêtre de validation, si bien que l'écran intermédiaire est un événement ponctuel, pas un péage.
Contrôle de flux et pot de miel silencieux
60 tentatives de vérification par minute par IP visiteur et clé de site, 600 par minute par clé de site. Un champ leurre rempli fait échouer le visiteur avec une raison délibérément peu informative, si bien que le bot n'apprend rien du rejet.
Activez-le. Copiez deux lignes. Terminé.
Activer le widget pour la première fois génère votre clé de site et votre clé secrète. La clé de site est publique et va dans l'extrait. La clé secrète reste sur votre serveur et sert à vérifier une réussite. Les deux se trouvent dans une carte sur l'onglet Configuration, avec des boutons de copie et un bouton Faire pivoter le secret à côté.
- Collez le script une fois sur n'importe quelle page et la case à cocher se monte d'elle-même, ou déposez le div de montage en ligne exactement où vous le voulez.
- Faites pivoter le secret quand vous voulez. La boîte de dialogue vous avertit que l'ancien cesse de fonctionner partout où il est utilisé.
- L'agressivité est un simple sélecteur : Faible escalade rarement, Élevée escalade facilement. Moyenne est le défaut.
7hQ2pXv0nMbK4sRj9TfLdA•••••••••••••••••••••• 4c9E Révéler Faire pivoter le secretÉquilibré. La plupart des visiteurs cochent la case sans jamais voir de challenge.
<script src="https://xuda.io/dist/runtime/js/captcha-loader.js"
data-sitekey="7hQ2pXv0nMbK4sRj9TfLdA"></script><div class="xuda-captcha" data-sitekey="7hQ2pXv0nMbK4sRj9TfLdA"></div>Personne ne voit un puzzle avant de l'avoir mérité.
Le niveau 0 est la case à cocher, les signaux passifs et un puzzle de preuve de travail que le navigateur doit résoudre. Le niveau 1 est un challenge visuel à 9 tuiles. Le niveau 2 est un verdict de risque IA et, si ce verdict est limite, une question générée. Chaque niveau n'existe que parce que celui d'avant a échoué.
Case à cocher, signaux et preuve de travail
où presque tout le monde s'arrêteLe visiteur clique une fois. Côté serveur, les signaux passifs deviennent un score et le navigateur doit avoir résolu le puzzle de preuve de travail. Une réussite qui arrive plus vite que l'âge minimum n'est pas acceptée.
- Le seuil de réussite bouge avec l'agressivité : 0,6 en Faible, 0,7 en Moyenne, 0,8 en Élevée.
- La preuve de travail est bornée à 8..24 bits de zéro en tête quand vous la réglez à la main.
- Le jeton de session derrière le widget vit 15 minutes.
Un challenge visuel à 9 tuiles
seulement après l'échec du niveau 0Une forme cible, neuf tuiles, au moins deux correctes. La grille est générée sur place à partir de cinq formes et huit couleurs, et notée contre un hachage des tuiles correctes plutôt qu'une réponse stockée.
- Actualiser donne une nouvelle grille ; Vérifier soumet la sélection.
- Chaque challenge émis est valide deux minutes.
- Aucune photographie, aucun panneau de rue, aucune bibliothèque de fournisseur.
Un contrôle de risque IA, puis une question
la dernière étape avant un blocageLes preuves collectées vont vers un verdict de risque structuré : un score, un verdict humain, bot ou limite, et une raison. Un humain clair réussit, un bot clair est bloqué, et un visiteur limite reçoit exactement une question générée à répondre.
- Le verdict doit noter au moins 0,7 pour réussir à ce niveau.
- La question générée est valide trois minutes et posée une fois.
- Si le score est injoignable, le visiteur est traité comme limite, pas échoué.
Votre backend sait déjà comment parler à ceci.
Le point de terminaison de vérification prend un secret et un jeton de réponse et répond dans le même format que reCAPTCHA et Turnstile. Si vous avez écrit ce code une fois, vous l'avez écrit pour ceci. Généralement seule l'URL change.
- Même format de requête que les appels siteverify que vous avez déjà écrits : un secret, un jeton de réponse, une IP visiteur optionnelle.
- Une réussite renvoie le score et le niveau atteint par le visiteur, pour que vous puissiez consigner à quel point le contrôle a dû travailler.
- Les échecs reviennent comme des codes lisibles : missing-input, invalid-input-secret, invalid-input-response, timeout-or-duplicate.
- Appelez-le depuis votre serveur uniquement. La clé secrète est l'identifiant, elle n'a donc jamais sa place dans le balisage de page.
$ curl -X POST https://xuda.io/cpi/captcha_siteverify \
-H 'content-type: application/json' \
-d '{"secret":"YOUR_SECRET_KEY","response":"<token from the form>"}'
{
"success": true,
"score": 0.86,
"level_reached": 0,
"hostname": "studio.co",
"challenge_ts": "2026-08-11T09:14:02Z",
"error-codes": []
}Placez le contrôle devant tout le site.
Choisissez un VPS, un déploiement, un datacenter ou un répartiteur de charge que vous hébergez avec Xuda, puis basculez Armé. Chaque visiteur non validé reçoit un écran pleine page « Vérification de votre navigateur » avant que le site ne charge. Désactivez-le et ils s'arrêtent. Seules les cibles hébergées par Xuda peuvent être protégées aujourd'hui.
| Cible | Trafic | Armé |
|---|---|---|
shop.mysite.com Déploiement · eu1 | 18,402 servis 1,196 défiés, 284 bloqués | |
api-prod-01 VPS · us1 | 6,051 servis 410 défiés, 97 bloqués | |
edge-balancer Répartiteur de charge · eu1 | 2,338 servis 84 défiés, 12 bloqués |
Appliqué à votre origine
Le routeur Xuda garde la liste armée en mémoire et l'actualise toutes les 30 secondes, si bien qu'armer et désarmer prennent effet dans une actualisation et il n'y a aucun saut supplémentaire sur le chemin critique.
Un passage, puis le silence
Un visiteur qui franchit le contrôle reçoit un cookie de validation httpOnly, sécurisé, SameSite=Lax et navigue normalement pour le reste de la fenêtre, 30 minutes par défaut.
Ou une seule bascule sur l'application
La carte Actions rapides d'un déploiement porte « Protection anti-bot (Sous attaque) ». Basculez-la là et le même contrôle se met en place, avec une ligne de challenges servis en dessous.
Des règles en pays, chemins et heures.
Parfois la réponse n'est pas plus dure pour tout le monde, elle est plus dure pour un pays, un chemin ou une fenêtre de la journée. Les règles personnalisées s'exécutent en périphérie dans un ordre fixe, vous savez donc toujours quelle règle a gagné. Elles viennent avec le forfait Règles personnalisées.
- Autoriser, défier ou bloquer par pays, choisi dans la liste complète ISO 3166-1 alpha-2.
- Règles par chemin comme /login ou /checkout, chacune réglée sur défier, bloquer ou autoriser.
- Fenêtres par heure de la journée et jour de la semaine, pour les moments où vous savez que le trafic devrait être calme.
- Listes toujours autoriser et toujours bloquer qui prennent des adresses IP, plages CIDR ou codes pays.
- Une exigence de référent, plus une fenêtre de validation que vous pouvez régler de une minute à 24 heures.
Quatre paliers, et une ligne sur la facture.
Le forfait se trouve sur le compte, pas sur chaque chose protégée, rien ici n'est donc facturé par cible protégée. Gratuit est une activation plutôt qu'un essai, et changer entre paliers payants retarife une seule ligne au lieu d'empiler une deuxième charge.
Gratuit
Commencez iciLa case à cocher sur vos propres formulaires, et le contrôle pleine page sur tout ce que vous hébergez avec Xuda.
- La case à cocher « Je ne suis pas un robot » sur toute page que vous hébergez vous-même, comme balise de script ou div de montage en ligne.
- Le contrôle pleine page devant un VPS, déploiement, datacenter ou répartiteur de charge Xuda.
- Vérification côté serveur via le point de terminaison siteverify, sans clé API impliquée.
- Agressivité, difficulté de preuve de travail et fenêtre de validation de 30 minutes sont toutes à vous de régler.
- Cibles que vous hébergez ailleurs
- Accès API programmatique
- Règles personnalisées
- Facturé par cible protégée
- Jamais
External
Le droit de protéger une cible que vous hébergez ailleurs que sur Xuda.
- La capacité de cible externe sur le compte, appliquée dans le code et prête pour le jour où le chemin d'attachement s'ouvre.
- Cibles que vous hébergez ailleurs
- Autorisé, pas encore attachable
- Accès API programmatique
- Règles personnalisées
- Facturé par cible protégée
- Jamais
API
Conçu pour piloter le contrôle depuis votre propre code. La surface programmatique n'est pas encore ouverte.
- La capacité API sur le compte. Vérifier une réussite depuis votre propre backend n'attend pas cela : le point de terminaison siteverify est public et se trouve sur Gratuit.
- Cibles que vous hébergez ailleurs
- Autorisé, pas encore attachable
- Accès API programmatique
- Pas encore ouvert
- Règles personnalisées
- Facturé par cible protégée
- Jamais
Règles personnalisées
Le plus completPour quand une règle générale est trop brutale et que vous voulez viser le contrôle sur un pays, un chemin ou une fenêtre.
- Autoriser, défier ou bloquer par pays, depuis la liste complète ISO 3166-1 alpha-2.
- Règles par chemin comme /login ou /checkout, chacune réglée sur défier, bloquer ou autoriser.
- Fenêtres par heure de la journée et jour de la semaine, plus une exigence de référent.
- Listes toujours autoriser et toujours bloquer prenant des adresses IP, plages CIDR ou codes pays.
- Agressivité par cible, évaluée en périphérie dans un ordre fixe pour que vous sachiez quelle règle a gagné.
- Règles de chemin
- 100 max
- Entrées par liste d'autorisation ou de blocage
- 200 max
- Fenêtre de validation
- 1 min à 24 heures
- Facturé par cible protégée
- Jamais
Dit clairement : la protection anti-bot est en direct et vérifiée sur dev et n'a pas encore été publiée sur les régions de production. Le palier External est facturable mais il n'y a aucun moyen d'attacher une cible en dehors de Xuda aujourd'hui. Les méthodes du palier API ne sont pas ouvertes aux clés API, la seule surface sans clé pour le moment est donc le point de terminaison de vérification côté serveur, et c'est déjà sur Gratuit. Sur Règles personnalisées, les règles de pays, chemin, heure, jour, référent et listes d'autorisation et de blocage sont appliquées en périphérie ; les contrôles de débit, empreinte et mauvais ASN sont enregistrés mais pas encore appliqués.
Aucun fournisseur avec qui s'inscrire. Aucun visiteur à remettre.
Les choix réalistes sont un widget captcha hébergé par un tiers, un blocage au niveau réseau devant votre site, ou un champ pot de miel que vous avez écrit vous-même. Voici ce que chacun vous donne vraiment.
Xuda Bot Protection Vous | Un widget captcha tiers | Un blocage au niveau réseau | Votre propre champ pot de miel | |
|---|---|---|---|---|
| Case à cocher que vous pouvez coller sur vos propres formulaires | ||||
| Contrôle pleine page devant tout un site hébergé | ||||
| N'escalade que quand les signaux paraissent automatisés | Varie | |||
| Preuve de travail avant que le navigateur ne soit cru | 16 bits par défaut | Varie | ||
| Challenge visuel généré en interne, aucun jeu de photos | Varie | |||
| Verdict de risque IA comme étape finale | Varie | |||
| Signaux du visiteur notés par un tiers | Varie | Varie | ||
| Vérification côté serveur au format siteverify | ||||
| Jeton de passage à usage unique, rejeu rejeté | 2 minutes | Varie | ||
| Limitation de débit par visiteur et par site incluse | Varie | |||
| Règles de pays, chemin, heure et jour | Forfait Règles personnalisées | Varie | ||
| Facturé par cible protégée | Varie | Varie |
Les choses qui valent la peine d'être demandées d'abord.
Arrêtez les bots. Laissez tout le monde d'autre tranquille.
Activez la case à cocher pour vos propres formulaires et pages, ou armez le contrôle pleine page devant tout ce que vous hébergez avec Xuda. Palier gratuit, aucune carte, aucun frais par cible, et aucun fournisseur de captcha au milieu.