Aller au contenu

Domaines autorisés

Par défaut, n’importe quel site peut afficher votre chat s’il dispose du code de votre intégration. Les domaines autorisés limitent cet affichage à vos propres sites. Tableau de bord → Réglages du projet → Domaines autorisés.

  • example.com, www.example.com : hôte exact ;
  • https://www.Example.com/path?x : les URL collées sont nettoyées (passage en minuscules, suppression du schéma, du chemin, des paramètres et du port, conversion des noms internationalisés en punycode, suppression du point final) → www.example.com ;
  • *.example.com : tous les sous-domaines, à n’importe quelle profondeur, mais pas example.com lui-même. Ajoutez les deux pour couvrir les deux ;
  • une adresse IP, telle quelle.

Refusés (400 INVALID_DOMAIN) : une saisie vide, un joker ailleurs qu’au début (ex*.com, *.*.com), un nom sans point (sauf localhost), plus de 253 caractères. Au maximum 50 domaines par projet (400 DOMAIN_LIMIT_EXCEEDED) ; les doublons sont ignorés.

Vous pouvez aussi remplir Où allez-vous l’ajouter ? en créant une intégration : le domaine est ajouté à la liste dans la même étape.

Autoriser localhost (pour le développement) (activé par défaut) accepte localhost, 127.0.0.1, [::1] et *.localhost sur n’importe quel port, tant que la liste n’est pas vide. Désactivez-le pour un projet uniquement en production.

  • Liste vide : aucune restriction.
  • Sinon, chaque requête du chat (intégration, salon, historique, flux en direct, message, indicateur de saisie, envoi de fichier) vérifie la page qui affiche le chat :
    • depuis le script d’intégration ou @komozu/react, l’en-tête Origin du navigateur ;
    • depuis l’iframe hébergée, la page qui contient l’iframe (transmise par le chat lui-même) ;
    • sans aucun Origin (un appel depuis un serveur ou un script), la requête est autorisée.
  • Une page refusée reçoit 403 DOMAIN_NOT_ALLOWED : le script d’intégration écrit dans la console [Komozu] This domain isn't allowed for this project. Add it in Settings → Allowed domains. et n’affiche rien ; l’iframe affiche « This chat can’t be displayed on this site. » (« Ce chat ne peut pas s’afficher sur ce site. » en français).
  • Le tableau de bord lui-même (sa page de test) est toujours autorisé.
  • L’API serveur et le tableau de bord ne sont jamais limités par les domaines.

La page du chat (embed.komozu.com) indique au navigateur les sites qui peuvent l’afficher (Content-Security-Policy: frame-ancestors) : vos domaines autorisés sur n’importe quel port, localhost, 127.0.0.1 et *.localhost quand Autoriser localhost est actif, et le tableau de bord. Sur tout autre site, le navigateur refuse d’afficher l’iframe et indique la raison dans sa console ; la page ne se charge pas.

  • Le navigateur vérifie chaque cadre autour du chat, pas seulement la page principale. Si votre créateur de site place le code personnalisé dans sa propre iframe sur un autre domaine, ajoutez aussi ce domaine.
  • [::1] est accepté par l’API mais ne peut pas s’écrire dans cet en-tête : utilisez localhost pour tester l’iframe en local.
  • Une modification de la liste s’applique aux iframes chargées jusqu’à 30 secondes plus tard ; un chat déjà ouvert continue jusqu’à son rechargement.

Pour les conversations que seuls vos utilisateurs connectés doivent lire, utilisez des salons Membres ou Privé (Identifier vos utilisateurs).