Skip to main content
Tous les termes Glossary

Casser le cadre

Definition

Le frame busting est une technique de sécurité qui empêche une page web d'être intégrée dans une iframe sur un autre site, contribuant ainsi à prévenir les attaques par clickjacking. Alors que le frame busting traditionnel utilisait JavaScript, les approches modernes s'appuient sur l'en-tête X-Frame-Options ou la directive CSP frame-ancestors. Cette protection est cruciale pour les sites qui traitent des actions ou des données sensibles.

Ce qu'est le frame-busting

Le frame-busting (ou frame-breaking) est la pratique consistant à empêcher qu'une page ne soit affichée à l'intérieur de l'iframe d'un autre site, la défense principale contre le clickjacking. La technique d'origine était du JavaScript qui vérifiait si la page était la fenêtre de premier niveau, par exemple en comparant window.top à window.self, et, si ce n'était pas le cas, forçait une navigation pour sortir du cadre ou masquait le corps. Cette approche côté client fonctionnait mais s'est révélée fragile : les attaquants utilisaient des iframes en bac à sable, l'événement beforeunload, l'encadrement restrictif et d'autres ruses pour déjouer les scripts naïfs. Le frame-busting moderne est largement passé du JavaScript à des en-têtes HTTP déclaratifs, définis par le serveur, que le navigateur applique avant même que la page ne s'affiche.

Pourquoi le mécanisme est important

La façon dont vous cassez les cadres détermine si la protection tient réellement. Le frame-busting basé sur des scripts ne s'exécute qu'après le début du chargement de la page et peut être supprimé, retardé ou mis en bac à sable, et il échoue entièrement si l'utilisateur a désactivé JavaScript ou si une extension interfère. Le frame-busting basé sur des en-têtes est évalué par le navigateur au moment du chargement et ne peut pas être contourné par script par la page qui encadre, il est donc strictement plus fiable. Y parvenir correctement est essentiel car les pages les plus intéressantes à encadrer, les parcours bancaires, les actions d'administration, le consentement OAuth, sont exactement celles où un frame-buster contourné se transforme en prise de contrôle de compte ou en transactions non autorisées via le clickjacking.

Le mettre en œuvre correctement

Préférez les en-têtes déclaratifs aux scripts. Définissez Content-Security-Policy: frame-ancestors avec une liste d'autorisation explicite des origines autorisées à vous intégrer, ou 'none' pour interdire tout encadrement, et ajoutez X-Frame-Options: DENY ou SAMEORIGIN pour couvrir les anciens navigateurs. Ne conservez un recours JavaScript qu'à titre de défense en profondeur, jamais comme unique contrôle. Vérifiez que les en-têtes sont livrés sur chaque route sensible, y compris les pages d'erreur. Comme il s'agit d'en-têtes sécurisés livrés avec vos réponses, un script tiers compromis ou défaillant qui les modifie ou les supprime affaiblit la protection ; la surveillance à l'exécution de cside peut détecter quand les en-têtes d'encadrement sont supprimés ou affaiblis, afin que la défense reste intacte en production.

Définition

Faut-il choisir X-Frame-Options ou CSP frame-ancestors ?

Utilisez les deux. CSP frame-ancestors est la directive moderne, prend en charge plusieurs origines autorisées et prime sur X-Frame-Options dans les navigateurs qui l'honorent. X-Frame-Options (DENY ou SAMEORIGIN) reste un recours utile pour les anciens clients qui ne prennent pas en charge frame-ancestors. Envoyer les deux maximise la couverture.

Définition

Pourquoi le frame-busting JavaScript est-il considéré comme peu fiable ?

Il ne s'exécute qu'après le chargement de la page et dépend du fait que JavaScript soit activé et ininterrompu. Les attaquants peuvent le neutraliser avec des iframes en bac à sable, l'événement onbeforeunload ou des ruses de double encadrement. Les contrôles d'encadrement basés sur des en-têtes sont appliqués par le navigateur avant l'affichage, ils ne peuvent donc pas être contournés par script par la page qui intègre.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Réserver une démonstration

Envie de passer tout ça en revue avec un ingénieur ?

Trente minutes, sur votre propre site. Pas de slides.

Nous vous montrerons :

Quels scripts tiers s'exécutent actuellement sur votre site
Où vous en êtes sur les exigences PCI DSS 6.4.3 et 11.6.1
Quelle part de votre trafic provient de bots et d'agents IA

Vous préférez simplement poser une question ?

Recherche de créneaux…

Humains uniquement. On le saurait.

Un problème pour réserver ? Ouvrir le calendrier dans un nouvel onglet

Quel problème cherchez-vous à résoudre ?

Dites-le-nous en une ligne et nous reviendrons vers vous avec quelque chose d'utile, pas un discours générique.

Nous aidons souvent sur :

Voir quels scripts tiers s'exécutent sur votre site
Les preuves pour PCI DSS 6.4.3 et 11.6.1
Les bots, les agents IA et le vol de comptes

Vous préférez réserver un créneau ? Choisir un créneau