Framekiller
Un framekiller (aussi appelé framebuster ou framebreaker) est une technique utilisée par les sites et applications Web pour empêcher l'affichage de leur contenu dans une frame HTML, qui est une subdivision d'une fenêtre de navigateur Web et peut prendre la forme d'une fenêtre de plus petite taille. Le rôle d'un framekiller est d'empêcher le chargement de contenu Web à des fins d'attaque, par exemple par clickjacking.
Implémentations
[modifier | modifier le code]Les framekillers sont généralement implémentés via JavaScript. L'approche recommandée est de bloquer par défaut le rendu de la fenêtre puis de ne la débloquer qu'après avoir confirmé que la fenêtre actuelle est bien la fenêtre principale (et non une frame), par exemple avec ce script:
<style>html{display:none;}</style>
<script>
if (self == top) {
document.documentElement.style.display = 'block';
} else {
top.location = self.location;
}
</script>
Ce type d'approche a été proposé en 2010 par Gustav Rydstedt, Elie Bursztein, Dan Boneh et Collin Jackson dans une publication qui soulignait les limites des techniques de framebusting alors employées par les 500 sites recensant le plus de trafic selon Alexa[1].
Références
[modifier | modifier le code]- G. Rydstedt, E. Bursztein, D. Boneh et C. Jackson « Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular sites » () (lire en ligne)
— « (ibid.) », dans 3rd Web 2.0 Security and Privacy workshop, IEEE