Domain Whitelisting
Le Domain Whitelisting vous permet de contrôler quels domaines sont autorisés à intégrer vos embeds dans une iFrame. Tout domaine non listé reçoit une réponse bloquée par l'en-tête Content Security Policy (CSP) frame-ancestors.
Pourquoi restreindre les domaines ?
Sans Domain Whitelisting, n'importe quel site peut intégrer votre embed dans une iFrame, y compris des sites malveillants. En définissant une liste blanche, vous garantissez que votre graphique ne peut être affiché que depuis vos domaines de confiance.
- Clickjacking : un site malveillant peut superposer votre embed invisible par-dessus son interface pour piéger vos utilisateurs.
- Vol d'interaction : des clics destinés à votre graphique peuvent être détournés vers des éléments cachés du site hôte.
- Intégration non autorisée : vos données peuvent apparaître sur des sites tiers sans votre accord.
- Avec Domain Whitelisting : le navigateur refuse le chargement hors domaines autorisés, avec une erreur CSP claire dans la console.
Ajouter un domaine autorisé
La configuration se fait au niveau du profil (embeds personnels) ou du workspace (embeds collaboratifs). Les deux niveaux sont accessibles depuis l'onglet Sécurité des paramètres correspondants.
- 1Allez dans Paramètres → Sécurité des embeds (profil) ou Paramètres du workspace → Sécurité.
- 2Dans le champ « Domaines autorisés », saisissez l'URL complète avec protocole (ex. https://monsite.com).
- 3Cliquez sur « Ajouter » — le domaine apparaît immédiatement dans la liste.
- 4Répétez l'opération pour chaque domaine à autoriser.
- 5Les embeds existants appliquent la nouvelle liste sans rechargement ni re-publication.
Syntaxe des domaines
Les domaines doivent être saisis avec le protocole (https://) et sans chemin de fin. Les wildcards de sous-domaines sont supportés via l'étoile (*). Voici les formats valides et invalides :
| Format | Valide ? | Comportement |
|---|---|---|
| https://monsite.com | ✓ | Autorise uniquement ce domaine exact |
| https://*.monsite.com | ✓ | Autorise tous les sous-domaines (app., www., etc.) |
| https://app.monsite.com | ✓ | Autorise uniquement ce sous-domaine |
| https://localhost:3000 | ✓ | Développement local avec port explicite |
| monsite.com | ✗ | Protocole manquant — https:// requis |
| https://monsite.com/page | ✗ | Les chemins ne sont pas supportés |
| http://monsite.com | ✗ | HTTP non recommandé (utilisez https://) |
À noter : Pour le développement local, ajoutez https://localhost:PORT à votre liste. Retirez-le avant la mise en production.
Comportement en cas de blocage
Lorsqu'une iFrame est chargée depuis un domaine non autorisé, le navigateur bloque le chargement avant même que le contenu ne soit affiché. Le blocage est côté navigateur — Embases envoie l'en-tête Content-Security-Policy: frame-ancestors, et le navigateur l'applique. L'utilisateur voit une iFrame vide ou un fond gris — jamais votre graphique ni vos données. La console affiche une erreur du type « Refused to frame ... because an ancestor violates the Content Security Policy directive ».
Domaines au niveau workspace
Dans un workspace, les domaines autorisés s'appliquent à tous les embeds créés dans ce workspace. La configuration est réservée aux owners. Les embeds personnels utilisent séparément les domaines du profil.
- Owners : configurer, ajouter et supprimer les domaines du workspace.
- Members : lecture seule — ils voient les domaines mais ne peuvent pas les modifier.
- Portée : s'applique à tous les embeds du workspace, sans exception.
- Isolation : les domaines workspace et profil sont indépendants — ils ne se cumulent pas.
- Priorité : un embed workspace utilise toujours les domaines du workspace, jamais ceux du profil de son créateur.
À noter : Si un domaine est manquant dans un workspace, seul l'owner peut l'ajouter — contactez-le directement.