Aller au contenu

4. Autoriser votre site web

Votre formulaire contiendra votre clé publique. Pas de problème – elle est faite pour être publique –, mais n’importe qui peut la copier depuis le code source de votre page. Deux éléments garantissent qu’elle ne fonctionne que pour votre formulaire : la liste des sites autorisés et le CAPTCHA sur le modèle.

  1. Ouvrez Sécurité. La carte Sites autorisés liste les domaines qui peuvent envoyer avec votre clé publique.

  2. Saisissez votre domaine dans Ajouter un domaine et cliquez sur Ajouter. Formats acceptés :

    Entrée Autorise
    example.com exactement example.com
    *.example.com n’importe quel sous-domaine, p. ex. www.example.com ou shop.example.com – mais pas example.com lui-même
    localhost:3000 un hôte et un port précis
    localhost localhost sur n’importe quel port – pratique pour le développement local

    La plupart des sites sont accessibles avec et sans www : ajoutez donc example.com et *.example.com (ou www.example.com).

  3. Cliquez sur Enregistrer en haut de la page.

La page Sécurité avec la clé publique, les clés privées, les Sites autorisés avec trois domaines, la Protection contre les abus et les options en cas d’épuisement des crédits

Frontmail compare l’en-tête Origin de chaque requête du navigateur avec cette liste :

  • Aucun domaine – la carte avertit Aucun domaine défini – n’importe quel site peut utiliser votre clé publique. L’envoi fonctionne depuis partout, ce qui est pratique pour un premier essai mais permet à d’autres d’épuiser vos crédits. Ne passez pas en production ainsi.
  • Un domaine absent de la liste – la requête est refusée avec origin_not_allowed et rien n’est envoyé. Si vous voyez cette erreur, vérifiez l’hôte exact dans la barre d’adresse (avec ou sans www, numéro de port).

Les sites autorisés arrêtent les autres sites web, mais pas un bot qui envoie directement ses requêtes à l’API. Un CAPTCHA Cloudflare Turnstile s’en charge – le plus souvent sous forme de vérification invisible, sans énigme. Les requêtes sans jeton valide échouent avec captcha_required avant de vous coûter un crédit.

Pour les sites web, Turnstile fonctionne avec votre propre widget Cloudflare gratuit (l’offre gratuite de Cloudflare n’autorise que 10 noms d’hôte par widget, Frontmail ne peut donc pas partager une clé entre les sites de tous ses clients). Cela prend environ deux minutes :

  1. Connectez-vous au tableau de bord Cloudflare (un compte gratuit suffit), ouvrez Turnstile et cliquez sur Add widget.

  2. Nommez le widget, ajoutez les noms d’hôte de votre site – p. ex. example.com et www.example.com –, laissez Widget mode sur Managed et cliquez sur Create.

  3. Copiez la Site Key et la Secret Key.

  4. De retour dans Frontmail, sur la page Sécurité, collez les deux clés dans la carte Protection contre les bots (Turnstile) et cliquez sur Enregistrer les clés. Frontmail vérifie la clé secrète auprès de Cloudflare, la stocke chiffrée et ne l’affiche plus jamais.

  5. Cliquez sur Activer le CAPTCHA pour tous les modèles. Le modèle de contact de ce tutoriel a désormais Exiger un CAPTCHA (Turnstile) activé (onglet Paramètres du modèle → Protection) ; le modèle de réponse automatique est ignoré, car c’est Frontmail qui l’envoie, pas votre formulaire.

Gardez la clé de site à portée de main – vous l’ajouterez au formulaire à l’étape suivante. Les composants pour frameworks (FrontmailForm pour React, Vue et Svelte) affichent le widget pour vous. Désormais, chaque nouveau modèle a le CAPTCHA activé par défaut.

La carte Protection contre les abus propose Bloquer les navigateurs headless et Paramètres stricts, et plus bas vous pouvez définir une Rate limit par IP et une Liste de blocage. Les valeurs par défaut conviennent pour ce tutoriel – consultez Protection contre les bots et Paramètres de sécurité quand vous voudrez renforcer la protection.

Pour aller plus loin : Domaines autorisés.