Qu'est-ce que le clickjacking ?
Le clickjacking est une technique où un attaquant dissimule un élément de page web ou le rend invisible au-dessus d'une page existante, dans le but de vous rediriger ou de vous faire cliquer sur autre chose. Lorsque vous cliquez ou que vous êtes trompé en cliquant sur un autre élément, vous pouvez accidentellement visiter des sites malveillants, transmettre vos identifiants ou divulguer des informations sensibles. Vous pourriez même acheter des produits en ligne sur un faux site frauduleux.
Les attaques de clickjacking sont généralement réalisées en affichant une page ou un élément HTML invisible, généralement à l'intérieur d'un iframe, au-dessus d'une page existante que vous voyez déjà en tant qu'utilisateur. Cela vous fait croire que vous cliquez sur la page visible réelle, mais en réalité vous cliquez sur un bouton ou un élément invisible qui est lié à une page supplémentaire superposée.
Si cela vous semble un peu confus, restez avec nous un instant. Dans ce guide, nous allons expliquer ce que sont les attaques de clickjacking et comment elles fonctionnent. Vous saurez comment prévenir le clickjacking et ce que vous pouvez faire pour lutter contre ces cas.
.jpg)
Pourquoi la prévention du clickjacking est-elle importante en 2026 ?
Le clickjacking est important car il transforme une interaction inoffensive en quelque chose de dangereux qui pourrait avoir des conséquences dévastatrices. Vous n'êtes même pas conscient de la superposition placée sur votre page. Elle est invisible à l'œil nu et peut redresser l'interface de votre page pour détourner vos actions utilisateur. Si vous accédez à un site malveillant avec des comptes sociaux déjà authentifiés, votre attaquant peut voler vos identifiants sensibles et d'autres informations.
Le clickjacking est également important car un simple clic ou un clic caché peut modifier les paramètres de votre compte, vous abonner de force à d'autres contenus et suivre des pages sans votre consentement. Imaginez qu'un pirate obtienne vos identifiants utilisateur en vous faisant cliquer sur une page via le clickjacking. Il peut alors prendre le contrôle de votre compte et vous faire effectuer des actions malveillantes à votre insu en arrière-plan.
Le clickjacking érodera collectivement la confiance de vos clients envers votre organisation, augmentera vos coûts de support et rendra plus difficile la prévention de ces attaques. Plus elles deviennent fragmentées et étendues à travers différents services, plus la situation s'aggrave. Et le pire, c'est que les utilisateurs ne peuvent pas distinguer les superpositions de votre site de celles trompeuses, car elles restent cachées.
Comment fonctionnent les attaques de clickjacking ?
Un exemple courant d'attaque de clickjacking est celui des boutons invisibles « acheter » et « aimer » sur lesquels vous cliquez en pensant fermer une fenêtre contextuelle. Un autre scénario classique consiste à placer un bouton de contrôle « activer » ou « activation » caché en bas d'une interface de jeu vidéo à laquelle vous jouez.
Gardez à l'esprit que le clickjacking n'est pas du phishing. Le phishing vise à vous convaincre ou à vous persuader d'agir. Mais dans une attaque de clickjacking, vous êtes trompé ou dupé en étant détourné de l'endroit où vos clics atterrissent. Le clickjacking semble plus naturel car vous n'y réfléchissez pas à deux fois et ne voyez pas l'attaque arriver (ce n'est pas si évident).
Les clics déguisés peuvent également confirmer des achats, des OTP et effectuer des transferts sans nécessiter votre confirmation ou authentification. Les attaques de clickjacking peuvent utiliser des éléments d'interface utilisateur pour accorder des autorisations qui peuvent être cliquées sous de faux prétextes. Elles peuvent aussi activer votre caméra, microphone et paramètres de localisation et exposer votre vie privée via des superpositions trompeuses.
Alors, une attaque de clickjacking est-elle un bug du navigateur ? Pas vraiment, mais elle peut abuser des fonctionnalités standard de votre site comme le layering et les iframes.
L'authentification unique peut-elle la prévenir ? Non, cela ne fonctionnera pas car une attaque de clickjacking peut manipuler votre interface utilisateur tandis que votre SSO ne gère que l'identité.
Les applications mobiles et hybrides peuvent également être impactées par les attaques de clickjacking, en particulier si elles sont utilisées pour afficher du contenu externe.
Comment détecter les vulnérabilités de clickjacking ?
Une des meilleures façons de détecter les vulnérabilités de clickjacking est d'essayer d'encadrer votre page web depuis d'autres serveurs.
- Ouvrez un environnement local et créez un simple fichier HTML. Appelons-le votre fichier HTML de preuve de concept (PoC). Utilisez maintenant une balise <iframe> dans le corps HTML. Intégrez l'URL de la page sensible que vous souhaitez tester avec votre balise
<iframe>. - Remplacez votre URL cible par l'URL de la page que vous souhaitez tester. Enregistrez et affichez la page dans votre navigateur. Si le contenu de votre page cible se charge avec succès (celui mentionné dans votre balise iframe), alors votre site est probablement vulnérable. Si elle ne se charge pas, alors vous êtes protégé.
- C'est la première façon de détecter une vulnérabilité de clickjacking que nous appelons test manuel.
Une autre façon de le découvrir est de tester les contournements de défense. Vous pouvez utiliser un simple script de frame-busting si JavaScript a été désactivé par votre navigateur web. Vous pouvez également utiliser des techniques avancées comme le double framing pour la prévention et le test des attaques de clickjacking.
Les scanners de vulnérabilités automatisés peuvent analyser les applications web à la recherche d'en-têtes HTTP anti-clickjacking mal configurés et certains peuvent inspecter les en-têtes de réponse HTTP dans les onglets réseau. Toutes les pages sans en-têtes comme X-Frame-Options et Content-Security-Policy sont vulnérables.
Il existe également des outils capables d'enregistrer vos clics sur des pages cibles et de les rejouer avec des superpositions d'interface d'attaque pour simuler des scénarios d'attaque réels. Ceux-ci peuvent vous aider à trouver diverses vulnérabilités de clickjacking.
Comment prévenir les attaques de clickjacking ?
Voici quelques moyens de prévenir les attaques de clickjacking :
Utiliser Permissions Policy pour contrôler les fonctionnalités du navigateur
Les navigateurs modernes vous permettent de limiter les fonctionnalités auxquelles les iframes intégrés peuvent accéder. Définissez l'en-tête Permissions-Policy pour désactiver le mode plein écran, la géolocalisation, la caméra, le microphone et les API de demande de paiement. Cela empêche les attaquants de détourner des fonctionnalités sensibles du navigateur via des superpositions. Même s'ils vous trompent pour cliquer, ils ne peuvent pas déclencher d'autorisations dangereuses sans votre accord explicite. C'est une couche de défense intelligente qui restreint ce que les attaquants peuvent réellement faire avec leurs superpositions.
Appliquer les restrictions sandbox des iframes au contenu intégré
Lorsque vous intégrez du contenu externe dans des iframes, l'attribut sandbox le verrouille par défaut. Bloquez les scripts, formulaires et pop-ups sauf si vous en avez spécifiquement besoin. Utilisez les valeurs allow avec précaution—accordez allow-scripts uniquement si l'iframe a réellement besoin de JavaScript, et évitez allow-same-origin sauf nécessité. Cette stratégie de confinement empêche le contenu intégré malveillant d'accéder à votre page principale ou aux données utilisateur. Testez régulièrement vos configurations sandbox pour vous assurer qu'elles fonctionnent toujours comme prévu.
Surveiller le comportement des clics utilisateur avec des écouteurs d'événements
Ajoutez des écouteurs d'événements JavaScript pour suivre l'origine réelle des clics. Vérifiez si les clics proviennent d'éléments d'interface utilisateur légitimes ou de positions qui ne correspondent pas aux boutons visibles. Comparez event.target avec event.currentTarget pour détecter les incohérences. Cela aide à détecter les clics qui semblent cibler des éléments visibles mais touchent en réalité des couches invisibles en dessous. Bien que cela n'arrête pas les attaquants déterminés, cela permet de repérer les astuces courantes de superposition et crée des pistes d'audit pour les équipes de sécurité.
Utiliser la détection par apprentissage automatique et IA
Des modèles avancés de ML peuvent désormais reconnaître les schémas de clickjacking en analysant la disposition des pages et les interactions utilisateur. Ces systèmes repèrent les superpositions d'iframe suspectes, les positionnements inhabituels d'éléments et les anomalies comportementales en temps réel. Les modèles CNN et réseaux neuronaux entraînés sur des jeux de données de phishing peuvent identifier les menaces avant que les utilisateurs ne soient affectés. À mesure que ces technologies s'améliorent, elles détecteront les attaques sophistiquées qui échappent aux défenses traditionnelles. Déployez la détection automatisée des menaces en complément de vos en-têtes HTTP pour une protection renforcée.
Utiliser le fingerprinting navigateur pour identifier les activités suspectes
Créez des empreintes numériques uniques pour chaque visiteur en fonction de leur navigateur, appareil et caractéristiques matérielles. Comparez les empreintes avec votre base d'utilisateurs connus. Si vous voyez des clics provenant d'un nouvel appareil ou d'un emplacement jamais utilisé auparavant, signalez-le pour une vérification supplémentaire. Le fingerprinting détecte les émulateurs, VPN et outils de spoofing utilisés par les attaquants pour masquer leur identité. Combiné à l'analyse comportementale, il vous aide à distinguer les vrais utilisateurs des bots et fraudeurs tentant des attaques de clickjacking.
Afficher des indicateurs d'authenticité du site aux utilisateurs
Affichez des filigranes visuels ou des badges de preuve d'origine qui prouvent que votre page est authentique et non altérée. Lorsque les utilisateurs voient ces indicateurs disparaître ou changer, cela signale une page usurpée ou une attaque par superposition. Un code d'interface défensif peut détecter lorsque votre page est encadrée et afficher automatiquement des avertissements. Les utilisateurs apprennent à faire confiance à ces repères visuels, ce qui complique la tâche des attaquants pour les tromper en cliquant sur des éléments cachés.
Bonnes pratiques pour la prévention du clickjacking
Voici quelques-unes des meilleures pratiques à suivre pour prévenir le clickjacking :
1. Définir les en-têtes HTTP X-Frame-Options
La première ligne de défense consiste à définir l'en-tête X-Frame-Options sur votre serveur. Cela indique aux navigateurs si votre page peut être chargée dans un iframe ou un frame. Vous avez trois principales options ici :
- 'DENY' est le choix le plus sécurisé et bloque tout domaine de cadrer votre contenu.
- 'SAMEORIGIN' autorise uniquement votre propre domaine à cadrer la page, ce qui fonctionne si vous avez besoin d'un cadrage interne.
- 'ALLOW-FROM uri' vous permet de mettre en liste blanche des domaines de confiance spécifiques, mais utilisez-le avec précaution en raison de problèmes de compatibilité entre navigateurs.
2. Mettre en œuvre Content Security Policy avec frame-ancestors
CSP est la méthode moderne pour prévenir le clickjacking et elle est plus flexible que X-Frame-Options. Ajoutez la directive frame-ancestors à votre en-tête Content Security Policy et spécifiez les domaines autorisés à cadrer votre contenu. Définissez-la sur 'none' si vous n'avez besoin d'aucun cadrage, ou spécifiez des domaines de confiance en utilisant la syntaxe CSP.
3. Sécuriser vos cookies de session avec l'attribut SameSite
Marquez tous vos cookies de session avec l'attribut SameSite défini sur 'Strict' ou 'Lax'. Cela empêche les cookies d'être envoyés lorsque votre page est chargée dans un iframe provenant d'un autre domaine.
Combiné à d'autres défenses, cela bloque les attaquants qui tentent de détourner les sessions utilisateur authentifiées via des attaques de cadrage. La protection est plus forte avec 'Strict', mais 'Lax' offre un bon équilibre entre sécurité et expérience utilisateur pour la navigation intersite légitime.
4. Ajouter un code JavaScript de frame-busting
Incluez un script de frame-busting JavaScript dans la section <head> de votre document HTML. Ce script vérifie si votre page est chargée dans un frame et en sort automatiquement si c'est le cas. C'est une couche de secours simple qui fonctionne sur la plupart des navigateurs modernes. Assurez-vous cependant que votre code de frame-busting est solide ; évitez les techniques obsolètes que les attaquants peuvent facilement contourner avec des méthodes avancées comme le double framing.
5. Utiliser window.confirm() pour les actions critiques
Avant de permettre aux utilisateurs de réaliser des transactions sensibles ou de modifier leur compte dans des iframes, utilisez la méthode window.confirm() pour forcer une confirmation explicite. Cela crée une boîte de dialogue qui oblige les utilisateurs à reconnaître activement ce qu'ils s'apprêtent à faire. Même si d'autres protections sont contournées, cela ajoute de la friction et intercepte les clics accidentels sur lesquels comptent les attaquants.
6. Tester régulièrement vos vulnérabilités
Créez un simple fichier HTML localement avec une balise iframe pointant vers l'URL de votre site. Essayez de le charger dans votre navigateur pour voir si votre page apparaît dans le cadre. Si elle se charge avec succès, vous êtes vulnérable et devez mettre en œuvre les en-têtes ci-dessus. Si elle ne se charge pas, vos protections fonctionnent. Utilisez des scanners de vulnérabilités automatisés pour vérifier l'absence des en-têtes X-Frame-Options et CSP dans vos en-têtes de réponse HTTP. Les tests manuels combinés à l'automatisation vous offrent une couverture complète.
7. Surveiller les mauvaises configurations
Utilisez des outils capables d'inspecter directement vos en-têtes de réponse HTTP depuis les onglets réseau de votre navigateur. Recherchez les en-têtes X-Frame-Options et Content-Security-Policy sur chaque page. Toute page dépourvue de ces en-têtes est une cible potentielle. Certains scanners automatisés peuvent également tester les contournements de défense et signaler les faiblesses de votre implémentation.
8. Intégrer des étapes de double confirmation
Demandez à vos utilisateurs de confirmer deux fois avant de leur permettre d'effectuer une action explicite et hautement sensible (comme un virement d'argent ou la suppression de comptes). Ne vous fiez pas aux scripts côté client.
9. Sensibiliser vos utilisateurs
Informez vos employés sur les attaques de clickjacking et leur fonctionnement. Sensibilisez-les aux superpositions inattendues, popups étranges et demandes de permissions soudaines. Quelles que soient les mesures de prévention du clickjacking que vous mettez en place, vérifiez-les avec la cheat sheet OWASP sur le clickjacking et assurez-vous que votre site est réellement protégé.
Conclusion
Le clickjacking devient un problème courant de nos jours mais ne vous inquiétez pas, vous savez maintenant à quoi vous attendre côté navigateur et côté client. Les protocoles pilotés par le serveur peuvent limiter l'utilisation des iframes par le navigateur et défendre contre les attaques de clickjacking.
L'efficacité d'une attaque de clickjacking dépendra également du comportement côté navigateur. Si vous respectez les meilleures normes web et les pratiques de navigation sécurisée, vous et vos utilisateurs serez probablement en sécurité. Restez vigilant, vérifiez la conformité de votre navigateur et n'oubliez pas de tirer pleinement parti de vos X-Frame-Options et Content Security Policy pour une protection suffisante !
FAQ
Le clickjacking consiste à tromper les utilisateurs pour qu'ils cliquent sur des éléments qu'ils ne souhaitent pas activer. Un site malveillant superpose des boutons ou des liens invisibles sur du contenu légitime. Lorsque vous cliquez sur ce que vous pensez être un bouton normal, vous activez en réalité quelque chose de caché derrière. L'attaquant contrôle ce qui se passe ensuite. Vos clics peuvent déclencher des actions non désirées comme la modification de paramètres de compte, la publication de contenu ou l'autorisation de permissions. Vous ne vous en rendrez même pas compte.
L'absence d'en-têtes X-Frame-Options est la principale raison pour laquelle le clickjacking fonctionne. Si votre site web ne définit pas cet en-tête, des attaquants peuvent l'intégrer dans des iframes. L'absence d'en-têtes Content Security Policy vous rend également vulnérable. Certains sites ne valident pas correctement les actions des utilisateurs, ce qui facilite la tromperie des visiteurs. Les sites web qui n'appliquent pas de techniques anti-framing sont des cibles. Les anciens frameworks sans protections intégrées sont particulièrement exposés. Les applications traitant des opérations sensibles nécessitent des défenses appropriées, sinon le clickjacking passera.
Les développeurs doivent définir l’en-tête X-Frame-Options sur DENY ou SAMEORIGIN. Cela empêche les navigateurs de charger votre site dans des iframes. Vous pouvez également utiliser Content Security Policy avec la directive frame-ancestors pour contrôler l’encadrement. Vérifiez toutes les actions utilisateur importantes, en particulier celles sensibles comme les paiements ou les modifications d’autorisations. Ajoutez des indicateurs visuels pour que les utilisateurs sachent quand ils interagissent avec de vrais boutons. Testez régulièrement votre site pour détecter les vulnérabilités liées à l’encadrement. Utilisez du code JavaScript de frame-busting comme protection de secours si des navigateurs plus anciens sont concernés.
X-Frame-Options est un en-tête HTTP qui indique aux navigateurs si votre site peut être intégré dans un cadre. Lorsqu'il est défini sur DENY, votre site ne se chargera dans aucun iframe, sans exception. SAMEORIGIN autorise l'intégration uniquement depuis le même domaine. ALLOW-FROM vous permet de spécifier des domaines de confiance pouvant intégrer votre site. Les navigateurs respectent cet en-tête et bloquent les tentatives d'intégration provenant d'autres sites. Les attaquants ne peuvent pas superposer votre contenu sans votre autorisation. Cet en-tête simple élimine le principal outil utilisé par les attaquants pour le clickjacking, rendant leur tâche impossible.
Vous pouvez vérifier vos en-têtes de réponse à l'aide d'outils en ligne ou des outils de développement de votre navigateur. Recherchez l'en-tête X-Frame-Options dans les réponses HTTP de votre site. S'il est absent, vous êtes vulnérable. Essayez de créer un fichier HTML de test qui intègre votre site dans une iframe et voyez s'il se charge. S'il apparaît dans l'iframe, le clickjacking est possible. Les tests manuels sont utiles, mais les scanners de sécurité automatisés peuvent détecter les problèmes plus rapidement. Testez à la fois votre domaine principal et vos sous-domaines. N'oubliez pas de tester après avoir effectué des modifications pour confirmer que votre correctif fonctionne réellement.
Tout d'abord, ajoutez l'en-tête X-Frame-Options à toutes vos réponses. Définissez-le sur DENY sauf si vous avez besoin de l'intégration dans un cadre. Utilisez les en-têtes Content Security Policy pour une protection supplémentaire. Formez les utilisateurs à reconnaître les comportements inhabituels ou les invites inattendues. Ne supposez pas que les clics des visiteurs sont toujours intentionnels. Mettez en place des jetons CSRF pour les actions importantes. Maintenez votre framework et vos bibliothèques à jour car ils corrigent des vulnérabilités. Effectuez régulièrement des audits de sécurité pour détecter les mauvaises configurations. Testez souvent vos défenses afin de vous assurer qu'elles fonctionnent réellement en cas d'attaque.


