# Protection antipourriel

Les nouveaux formulaires sont protégés dès le départ. Vous pouvez ajuster chaque
vérification et ajouter une vérification humaine au besoin. Ouvrez un formulaire, puis
**Paramètres**.

## Les vérifications déjà actives

| Vérification | Ce qu’elle fait | Sur un nouveau formulaire |
| --- | --- | --- |
| Champ caché | Les robots remplissent souvent un champ invisible pour les gens. Un champ rempli rejette la soumission | Activé |
| Temps minimal de soumission | Rejette un formulaire envoyé plus vite qu’une personne ne peut le remplir | 1 seconde |
| Nombre maximal de liens | Rejette une soumission qui contient trop de liens | 3 liens |

Mettez une limite de temps ou de liens à `0` pour désactiver cette vérification. Ces
vérifications s’exécutent sur le serveur, avant tout stockage ou toute livraison. Une
soumission rejetée renvoie `SPAM_REJECTED`, et aucun courriel n’est envoyé.

Les routes publiques ont aussi une limite de débit : une rafale de requêtes renvoie
`RATE_LIMITED`. Formerie s’en occupe pour vous.

## Limites de soumission

Chaque formulaire arrive avec des limites raisonnables. Pour les changer sur un formulaire,
ouvrez **Paramètres**, puis **Limites de soumission**. Le serveur les fait respecter, et
**Utiliser les valeurs par défaut** les ramène.

| Limite | Ce qu’elle fait | Par défaut |
| --- | --- | --- |
| Soumissions par visiteur | Empêche un visiteur d’inonder le formulaire, sur 1 minute, 10 minutes, 1 heure ou 1 jour | 10 par 10 minutes |
| Soumissions pour tout le formulaire | Un plafond pour l’ensemble des visiteurs, avec le même choix de durées | 300 par heure |
| Nombre maximal de soumissions acceptées | Un quota pour tout le formulaire, par jour, par semaine ou par mois, ou au total. Une fois atteint, le formulaire n’accepte plus de soumissions | Aucun |
| Ignorer les envois répétés d’une soumission pendant | Une nouvelle tentative de la même soumission pendant ce délai n’est ni comptée ni livrée deux fois. Au moins 60 secondes | 300 secondes |

Le dépassement d’une limite de débit renvoie `RATE_LIMITED`, un quota atteint renvoie
`FORM_QUOTA_REACHED` et une nouvelle tentative renvoie `DUPLICATE_SUBMISSION`.

Les pages hébergées et les intégrations par script indiquent leurs nouvelles tentatives pour
vous, et votre propre interface peut faire de même en envoyant `metadata.idempotencyKey`.
Quelqu’un qui remplit de nouveau le formulaire envoie une nouvelle soumission. Les visiteurs
sont distingués par une adresse réseau hachée : les gens d’un même réseau partagent donc la
limite par visiteur.

## Vérification humaine

La vérification humaine est facultative et désactivée sur les nouveaux formulaires.
Activez-la formulaire par formulaire, sous **Vérification humaine**.

| Option | Idéale pour |
| --- | --- |
| Cloudflare Turnstile géré par Formerie | Les formulaires sur les domaines hébergés par Formerie pris en charge, sans clé à configurer |
| Vos propres clés Turnstile | Les domaines personnalisés, ou vos propres réglages de défi |
| Vos propres clés reCAPTCHA v2 | Un défi Google visible |
| Vos propres clés reCAPTCHA v3 | Un score, avec votre minimum et votre action attendue |

Avec vos propres clés, ajoutez chaque domaine hébergé ou intégré aux réglages du widget
dans la console du fournisseur. Votre clé secrète est chiffrée avant le stockage, et
l’application ne l’affiche plus jamais.

Les pages hébergées, les intégrations par script et le montage dans le navigateur
affichent le défi pour vous. Les interfaces sur mesure transmettent le jeton du
fournisseur dans `verificationToken` :

```ts
await forms.submit("example.com", "contact", {
  fields,
  verificationToken: captchaToken,
});
```

Formerie vérifie le jeton sur le serveur avant d’accepter la soumission.

## Origines autorisées

Ajoutez les origines de votre site sous **Origines autorisées** quand vous utilisez une
intégration par API ou SDK. Les requêtes de navigateur provenant d’autres origines sont
refusées.

## Pas encore offert

- Une seule réponse par personne.
- Filtrage antipourriel par IA, indiqué comme à venir sur la page sur l’IA.
