Question Contournement du bac à sable iframe?


Quelqu'un iframing mon site, en utilisant

<iframe src="http://example.org" sandbox=""></iframe> 

De cette manière, l'attribut sandbox empêche mon site d'utiliser le bloqueur iframe. Et il peut être facilement iframed.

Frame buster sur mon site:

if (window.top !== window.self) window.top.location.replace(window.self.location.href);

Y a-t-il une manière programmatique rediriger sur mon site quand il est iframed lorsqu'il est utilisé avec l'attribut sandbox?


26
2017-10-30 13:01


origine


Réponses:


Iframing peut être protégé par le biais de X-Frame-Options en-tête de réponse, définissez soit X-Frame-Options  value="DENY" ou X-Frame-Options  value="SAMEORIGIN". Grâce à ces paramètres d'en-tête de réponse, vous pouvez protéger votre site Web contre les attaques IFraming ou Clickjack.

Une fois que X-Frame-Options l'en-tête de réponse est défini, le navigateur reçoit un message standard du type "Ce contenu ne peut pas être affiché dans un cadre".


17
2017-10-30 15:01



L'attribut sandbox désactive tous les javascript, entre autres choses. C'est pour cette raison que votre gestionnaire de trames ne fonctionnera pas, ni aucune autre personne javascript fournie.

W3 dire d'un bac à sable:

  • les scripts sont interdits / désactivés dans l'iframe
  • les liens vers d'autres contextes de navigation sont interdits / désactivés dans l'iframe

Un test montre que l'attribut désactive également les méta-redirections et tout lien standard qui sort de l'iframe.

Avec cette rigueur, je serais très surpris si une redirection est possible, car cela irait à l'encontre du but du bac à sable.

Le mieux que je puisse suggérer serait d’utiliser le tag noscript pour afficher un message aux utilisateurs qui voient la page dans un iframe en bac à sable. Vous pouvez créer un style pour que les gens ne puissent pas voir votre contenu.

(Si le problème ne concerne qu’un seul site, il serait probablement préférable de les bloquer avec htaccess)


10
2017-10-30 15:23



Je pense que la meilleure chose à faire est de montrer votre propre message avec un target="top" lien. Le concept entier de l'attribut sandbox est d'interdire les redirections. Il n'y a aucun moyen de contourner cela et si jamais vous trouvez un navigateur, les fabricants trouveront probablement un moyen de l'arrêter. C'est clairement leur intention.

C'est comme ça que fonctionne le web. Vous ne pouvez pas faire ce que vous voulez quand il s'agit de navigateurs.


2
2017-12-20 20:58



@ La réponse de SudiptaKumarMaiti X-Frame-Options fonctionne, mais est remplacé par la politique de sécurité du contenu (CSP) niveau 2 - en particulier le frame-ancestors  directif.

Interdire complètement le cadrage (similaire à X-Frame-Options: DENY), utilisez cet en-tête HTTP:

Content-Security-Policy: frame-ancestors 'none';

0
2018-01-12 22:58