Comment empêcher mon site à la page pour être chargés via la 3ème partie du site cadre de l'iFrame
Comment puis-je savoir que ma page est incorporé comme une trame à l'autre site lors du chargement d'une page? Je suppose que référent en-tête de requête ne peut pas m'aider ici? Merci.
- Salut, John, je ne peux pas dire que j'ai besoin de solution complète ici, juste la direction de déplacement est suffisant, après, je suis la recherche de réponse sur ma question, je suis toujours en poste en tant que réponse à une question, c'est la seule façon que je peux participer à la communauté.
- Remarque: la Configuration de la balise meta est inutile! Par exemple, <meta http-equiv="X-Frame-Options" content="refuser"> n'a aucun effet. Ne l'utilisez pas! Que par la mise en au travers de l'en-tête HTTP, comme les exemples ci-dessous, X-Frame-Options de travail. developer.mozilla.org/fr/docs/Web/HTTP/Headers/X-Frame-Options
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas vérifier du côté du serveur, mais vous pouvez utiliser javascript pour détecter une fois la page chargée. Comparer
top
etself
, si elles ne sont pas identiques, vous êtes dans un cadre.En outre, certains navigateurs modernes respecter les
X-FRAME-OPTIONS
en-tête, qui peut avoir deux valeurs:Les utilisateurs de Google Picasa, qui ne peuvent pas être intégrés dans un cadre.
Les navigateurs qui prennent en charge l'en-tête, avec la version minimale:
Stackoverflow comprend certains JS pour le tester (
master.js
). C'est la partie pertinente de celui-ci:Mais gardez à l'esprit que le JS peut être désactivé.
Pour les navigateurs modernes, vous pouvez utiliser CSP (Contenu de la Politique de Sécurité), qui est un standard. L'en-tête suivant permettra d'éviter le document à partir de chargement dans un cadre de n'importe où:
(IE 11 besoins de la
X-
préfixe, tout de même). Vous pouvez également modifier'none'
à l'origine sur lequel le cadrage est autorisée, comme votre propre site.Pour couvrir les anciens navigateurs, ce qui est le mieux utilisé avec @Maerlyn réponse.
vous pouvez empêcher le chargement de la page dans un iframe avec javascript
cette modification du code d'adresse de votre contenant de la page en iframe dans la page de l'adresse et de la force de conteneur pour afficher votre page.
sandbox
attribut sur iframe permet d'interdire un tel cadrage échapper hacks. Ainsi, de cette façon n'est pas garanti de manière à empêcher le cadrage, dans le cas où votre préoccupation est la sécurité.Ou vous pouvez bloquer un domaine spécifique si vous n'avez pas l'esprit de votre contenu, à certains endroits, mais ne veux pas de ça sur un certain site. Par exemple, si
offendingdomain.com
a été l'incorporation de votre contenu, vous pourriez faire ceci:Ce serait de vérifier le document parent de l'emplacement et de voir si c'est la
offendingdomain.com
qui est à l'incorporation de votre contenu. Ce script enverra alors que l'iframe d'un certain célèbre vidéo youtube en guise de punition. En effet, ils ont juste Rick Laminé à eux-mêmes.Utiliser javascript pour vérifier si il a été chargé sur iframe en plaçant le script suivant à la fin de votre fichier php et de rediriger vers une page qui affiche l'avertissement ou de l'avis que votre page ne doit pas être chargé à l'aide d'une iframe.