Aller au contenu

Paramètres de sécurité

La page Sécurité regroupe les clés API de votre organisation et tout ce qui protège votre clé publique contre les abus.

La page Sécurité avec les cartes clé publique, clés privées, sites autorisés, protection contre les abus, liste de blocage, rate limit par IP et le choix du comportement quand les crédits sont épuisés

Rôle Accès
Propriétaire, Administrateur Voient et modifient tout.
Développeur Lecture seule : voit les clés et les réglages, mais sans boutons et avec tous les champs désactivés.
Lecteur, Facturation Aucun accès – la page indique que votre rôle ne le permet pas.

Les actions sur les clés – Renouveler la clé, Nouvelle clé privée et Révoquer – prennent effet immédiatement après confirmation.

Les clés Turnstile de Protection contre les bots (Turnstile) s’enregistrent avec le bouton Enregistrer les clés propre à la carte.

Tous les autres réglages de la page (sites autorisés, interrupteurs de protection contre les abus, applications mobiles, liste de blocage, rate limit, domaines de liens autorisés, e-mails par destinataire et comportement en cas de crédits épuisés) restent à l’état de brouillon jusqu’à ce que vous cliquiez sur Enregistrer en haut à droite. Le bouton n’est actif que si quelque chose a changé. Chaque enregistrement est consigné dans le journal d’audit sous security.updated.

La carte Clé publique affiche votre clé pk_… avec un bouton de copie. C’est la clé que vous mettez sur votre site web – elle peut être publiée sans risque, car les requêtes qui l’utilisent sont contrôlées au regard des sites autorisés, du CAPTCHA et des rate limits. Voir Clés publiques et privées.

Renouvelez-la si vous constatez des abus malgré vos autres protections.

  1. Cliquez sur Renouveler la clé.
  2. Confirmez avec Renouveler la clé dans la boîte de dialogue Renouveler la clé publique ?
  3. Copiez la nouvelle clé et déployez-la sur votre site web.

L’ancienne clé continue de fonctionner pendant 24 heures. D’ici là, la carte affiche une note indiquant quelle clé précédente fonctionne encore et jusqu’à quand. Ensuite, les requêtes avec l’ancienne clé échouent avec invalid_public_key.

Les Clés privées sont réservées aux serveurs – le SDK Node, cURL, votre backend. Le tableau affiche pour chaque clé son Nom avec sa date de création, les quatre derniers caractères sous Clé et sa Dernière utilisation (Jamais si elle n’a pas encore été utilisée).

Une organisation peut avoir au maximum 20 clés privées actives.

  1. Cliquez sur Nouvelle clé privée.
  2. Saisissez un Nom qui indique où vous l’utiliserez, p. ex. « Backend de production », et cliquez sur Créer.
  3. La boîte de dialogue Votre nouvelle clé privée affiche la clé complète. Copiez-la maintenant et enregistrez-la dans les secrets de votre serveur ou dans votre gestionnaire de mots de passe.
  4. Cliquez sur Je l’ai mise en lieu sûr.
  1. Cliquez sur Révoquer dans la ligne de la clé.
  2. Confirmez avec Révoquer dans la boîte de dialogue.

La révocation est immédiate – les requêtes avec cette clé sont aussitôt refusées avec invalid_private_key. Pour remplacer une clé sans interruption, créez d’abord la nouvelle clé, déployez-la, vérifiez que la Dernière utilisation de l’ancienne clé ne change plus, et seulement ensuite révoquez-la.

Seuls les domaines listés sous Sites autorisés peuvent envoyer avec votre clé publique. Frontmail les compare à l’en-tête Origin du navigateur. Les détails se trouvent dans Domaines autorisés.

Formats acceptés :

Entrée Correspond à
example.com Exactement ce domaine.
*.example.com N’importe quel sous-domaine de example.com.
localhost:3000 Un hôte avec un port précis – pratique pour le développement local.

Si vous collez une URL complète comme https://example.com/contact, le tableau de bord ne conserve que l’hôte.

  1. Saisissez le domaine dans Ajouter un domaine.
  2. Cliquez sur Ajouter (ou appuyez sur Entrée). Le domaine apparaît sous forme d’étiquette au-dessus du champ.
  3. Cliquez sur Enregistrer.

Pour retirer un domaine, cliquez sur la × de son étiquette, puis sur Enregistrer.

Cette carte contient les propres clés Cloudflare Turnstile de votre organisation. Les modèles où Exiger un CAPTCHA (Turnstile) est activé n’acceptent les requêtes de vos sites web qu’avec un jeton Turnstile, et Frontmail vérifie ces jetons avec la clé secrète que vous enregistrez ici. Sans clés, les requêtes web vers ces modèles échouent avec captcha_not_configured.

Pourquoi vos propres clés : l’offre gratuite de Cloudflare n’autorise que 10 noms d’hôte par widget, une seule clé Frontmail ne peut donc pas couvrir les sites de tous les clients. Votre widget est gratuit et ne fonctionne que sur vos noms d’hôte.

  1. Dans le tableau de bord Cloudflare, ouvrez Turnstile → Add widget, nommez-le, ajoutez les noms d’hôte de vos sites (p. ex. example.com, www.example.com ; localhost uniquement pour les tests), laissez le mode Managed et cliquez sur Create.
  2. Copiez la Site Key et la Secret Key.
  3. De retour 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.
  4. Cliquez sur Activer le CAPTCHA pour tous les modèles pour l’activer en un clic sur vos modèles existants. Les modèles utilisés comme réponse automatique sont ignorés.

L’enregistrement vérifie d’abord la clé secrète auprès de Cloudflare – une clé secrète erronée est refusée avec un message clair et rien n’est stocké. Les clés sont enregistrées immédiatement (le bouton Enregistrer de la page n’est pas nécessaire) et consignées dans le journal d’audit sous security.turnstile.updated ; l’activation du CAPTCHA pour tous les modèles est consignée sous template.captcha_enabled.

  • La clé secrète est en écriture seule : elle est stockée chiffrée et n’est plus jamais affichée – la carte n’affiche que la clé de site et la date depuis laquelle les clés sont configurées. Pour les changer, cliquez sur Remplacer les clés et collez les nouvelles ; pour ne plus les utiliser, cliquez sur Supprimer les clés et confirmez Supprimer les clés Turnstile ? (security.turnstile.removed). Les modèles conservent leur réglage CAPTCHA : après la suppression des clés, les requêtes web vers ces modèles échouent donc jusqu’à ce que vous ajoutiez de nouveau des clés.
  • Une fois les clés enregistrées, les nouveaux modèles ont le CAPTCHA activé par défaut. Les modèles créés auparavant conservent leur réglage.
  • L’onglet Extraits de code de l’éditeur de modèle inclut alors le widget avec votre clé de site.
  • Pour le développement local, vous pouvez utiliser les clés de test de Cloudflare – jamais en production.

Les applications mobiles créées avec @frontmail/react-native n’ont pas besoin de ces clés – elles utilisent la clé mobile partagée de Frontmail.

L’exigence du CAPTCHA Turnstile se règle modèle par modèle dans l’éditeur de modèle, pas ici – voir Turnstile. La carte Protection contre les abus comporte quatre interrupteurs :

Interrupteur Effet
Bloquer les navigateurs headless Refuse les requêtes par clé publique provenant de navigateurs automatisés comme Puppeteer. Désactivé par défaut. Voir Protection contre les bots.
Paramètres stricts Refuse les requêtes contenant des paramètres absents du schéma du modèle, au lieu de les ignorer. Désactivé par défaut.
Autoriser l’API par clé privée Permet à vos serveurs d’envoyer avec une clé privée, qui contourne le contrôle du site. Activé par défaut. Désactivez-le si vous n’envoyez que depuis des navigateurs – les requêtes avec une clé privée sont alors refusées avec 403 forbidden.
Autoriser les clés privées dans les navigateurs Accepte les requêtes par clé privée provenant d’une page web (avec un en-tête Origin). Désactivé par défaut – ces requêtes sont refusées avec 403 private_key_in_browser, car chaque visiteur de la page pourrait copier la clé. Ne l’activez que pour des outils internes ; un avertissement apparaît alors. Voir Clés.

N’oubliez pas de cliquer sur Enregistrer après avoir modifié un interrupteur.

Les applications natives (React Native, Flutter, Swift, Kotlin) n’envoient pas d’en-tête Origin, leurs requêtes – comme toute requête par clé publique sans Origin ni Referer – sont donc refusées avec 403 origin_not_allowed, même si aucun site autorisé n’est défini. La carte Applications mobiles comporte un seul interrupteur, Autoriser les applications mobiles (désactivé par défaut). Lorsqu’il est activé, les requêtes par clé publique sans en-tête Origin ni Referer sont acceptées et leur CAPTCHA est vérifié avec la clé mobile partagée de Frontmail. Les requêtes des sites web restent contrôlées au regard de la liste. Les détails se trouvent dans Domaines autorisés → Applications mobiles.

  1. Activez Autoriser les applications mobiles.
  2. Lisez l’avertissement qui apparaît sous l’interrupteur.
  3. Cliquez sur Enregistrer.

La Liste de blocage arrête les spammeurs connus avant que leurs requêtes ne consomment des crédits.

  • Valeurs bloquées – une valeur par ligne : adresses e-mail, domaines (spam.example ou @spam.example) ou valeurs exactes de paramètres.
  • Paramètre à vérifier – le paramètre comparé à la liste en plus des destinataires, p. ex. email pour l’adresse du visiteur dans un formulaire de contact.

Les requêtes correspondantes échouent avec recipient_blocked. Plus d’informations dans Protection contre les bots → Liste de blocage.

Rate limit par IP limite la fréquence à laquelle un même visiteur peut envoyer vos formulaires avec la clé publique. Définissez Requêtes (1 à 1 000) et Par (secondes) (1 à 86 400) ; la phrase sous les champs résume le résultat. La valeur par défaut est 10 requêtes par 60 secondes. Les requêtes au-delà de la limite reçoivent 429 rate_limited et ne consomment pas de crédits. Les requêtes par clé privée ne sont pas limitées par IP – voir Rate limits.

Quand un modèle prend son destinataire dans les paramètres et est envoyé avec la clé publique – et pour chaque réponse automatique –, les liens de l’e-mail ne peuvent pointer que vers des domaines de confiance. Les liens écrits directement dans le modèle et vos sites autorisés sont toujours acceptés ; ajoutez d’autres domaines dans Domaines de liens autorisés, un par ligne : example.com (exactement cet hôte) ou *.example.com (sous-domaines uniquement). Les lignes invalides sont signalées et bloquent Enregistrer. Les requêtes contenant un lien vers un autre domaine échouent avec link_not_allowed. Voir Liste des domaines de liens et verrouillage du contenu.

E-mails par destinataire et par jour (1 à 1 000, 5 par défaut) plafonne le nombre d’e-mails avec destinataire dynamique (clé publique) et de réponses automatiques qu’une même adresse reçoit par jour (UTC). Au-delà de la limite, les requêtes échouent avec 429 rate_limited (details.scope: "recipient") et aucune réponse automatique n’est créée.

Cette carte détermine ce qui arrive aux nouveaux e-mails quand l’organisation n’a plus de crédits :

Option Comportement
Retenir les e-mails (Recommandé, par défaut) Les e-mails sont acceptés et patientent dans E-mails retenus. Ils sont envoyés automatiquement dès que vous ajoutez des crédits.
Refuser les requêtes L’API répond 402 insufficient_credits et rien n’est stocké – votre site décide de ce qu’il affiche au visiteur.

Choisissez une option et cliquez sur Enregistrer. Pour une vue d’ensemble, y compris la libération des e-mails retenus, voir File d’attente des e-mails retenus.