Surmonter “Afficher interdit par X-Frame-Options”
Je suis en train d'écrire une petite page web dont le but est à l'image de quelques autres pages, il suffit de les regrouper dans une seule fenêtre de navigateur pour faciliter la visualisation. Quelques unes des pages que je suis en train de cadre interdire de les encadrer et de lancer une "a Refusé d'afficher le document parce que l'affichage interdit par X-Frame-Options." erreur dans le navigateur Chrome. Je comprends que c'est une sécurité de limitation (pour de bonnes raisons), et n'ont pas accès à la changer.
Est-il une alternative de cadrage ou de la non-définition de la méthode pour afficher les pages dans une seule fenêtre qui ne sera pas déclenché par le X-Frame-Options d'en-tête?
- Si ce sont vos pages, puis retirez le cadre du limiteur. Autrement, le respect de la page de l'auteur souhaite et de NE PAS les encadrer.
- Si vous obtenez cette erreur pour un Facebook Application et d'utiliser les appels AJAX, j'ai lu quelque part que Facebook aime vraiment à l'aide de # tags pour ajax contact, afin d'essayer de changer les liens, a travaillé pour moi.
- Assurez-vous d'activer les cartes google maps intégrer des api en plus de lieux de l'API. Générer la carte à partir d'ici: developers.google.com/maps/documentation/embed/start
- Assurez-vous également d'avoir 3rd party cookies sont activés dans votre navigateur. M'a fallu plusieurs heures pour le comprendre, et il a résolu mon problème.
- Chrome et Firefox éthiquement cadre non-propriétaires de sites web en natif de l'INTERFACE utilisateur de chrome. Ces programmes permettent aussi détendue de même origine politiques à leurs propriétaires, FWIW. Comme garen-checkly dit, "je suis en train d'écrire une petite page web dont le but est à l'image de quelques autres pages, il suffit de les regrouper dans une seule fenêtre de navigateur pour faciliter la visualisation." C'est en fait une extension du navigateur web et serait tout à fait éthique. L'objectif n'est pas différent de l'écriture d'un script bash pour ouvrir et organiser les fenêtres de navigateur.
- Vérifier Surfly. Il peut faire exactement ce que vous avez besoin.
- Surfly a l'air sympa, mais pour 20 EUROS/mois... je pense que je vais ouvrir une autre fenêtre de navigateur. 😉
- Quelle que soit possible la trik sur le côté serveur est considérer comme bug. Il est à noter que, pour Chrome (et tous basé sur webkit navigateurs) tôt ou tard, ils n'auront plus de soutien pour les XFrame-Options: Autoriser-à Partir de états à tous. Donc juste une question de temps, à Moins que vous en mesure de trouver un autre moyen comme Contenu de la Politique de Sécurité, je vous propose de changer la méthode d'affichage d'un contenu externe dans
iframe
à une solution acceptable. - Ce n'est pas utile. L'OP ne pourriez pas de soins sur la page de l'auteur le souhaite.
- Une solution Acceptable? Quelle autre solution proposez-vous?
- Les solutions de rechange autres que des cadre de contenu externe. Par exemple l'utilisation d'un proxy web, ou extraire le contenu et de le réécrire en un bloc dans les pages.
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire, où j'essayais d'afficher le contenu à partir de notre propre site dans une iframe (comme une boîte de dialogue de type avec Colorbox), et où nous avons eu un serveur à l'échelle de "X-Frame-Options SAMEORIGIN" en-tête sur le serveur source, l'empêchant de chargement sur notre serveur de test.
Cela ne semble pas être documenté n'importe où, mais si vous pouvez modifier les pages que vous essayez d'iframe (eg., ce sont vos propres pages), il suffit d'envoyer un autre X-Frame-Options d'en-tête avec une chaîne à tous les désactive le SAMEORIGIN ou de REFUSER des commandes.
par exemple. pour PHP, mettre
en haut de votre page va faire les navigateurs combiner les deux, ce qui résulte en un en-tête de
...et permet de charger la page dans un iframe. Cela semble fonctionner, lors de la première SAMEORIGIN commande a été définie au niveau serveur, et que vous souhaitez le remplacer sur une page-par-page cas.
Tout le meilleur!
X-Frame-Options: SAMEORIGIN
il n'y a aucun moyen de le faire à l'intérieur du cadre. Vous devez utiliser un popup.header_remove
de la fonction, à condition que vous l'avez à disposition (>=5.3.0).Header always unset X-Frame-Options
GOFORIT
(ou d'autres aléatoire arbitraire invalid token) est rompant délibérément avec une mesure de sécurité appliquées par un serveur; si vous avez le contrôle du serveur vous-même (ce que vous devriez faire pour tout réel de service public) puis la bonne chose à faire est de définir le serveur de ne pas définir l'en-tête dans la première place.X-Frame-Options
en-tête de la page référencé dansiframe src="..."
. Pour les Rails, voir stackoverflow.com/questions/18445782/...Si vous obtenez cette erreur pour une vidéo de YouTube, plutôt que d'utiliser l'url complète d'utilisation de l'intégration url de la quote-part des options. Il ressemblera à
http://www.youtube.com/embed/eCfDxZxTBW4
Vous pouvez aussi remplacer
watch?v=
avecembed/
donchttp://www.youtube.com/watch?v=eCfDxZxTBW4
devienthttp://www.youtube.com/embed/eCfDxZxTBW4
Si vous obtenez cette erreur, tout en essayant d'intégrer une Carte Google map dans un
iframe
, vous devez ajouter&output=embed
pour le lien source.&output=embed
pas?&output=embed
Mise à JOUR 2019: Vous peut de dérivation
X-Frame-Options
dans un<iframe>
juste à l'aide de JavaScript côté client et mon X-Frame-Bypass Composant Web. Voici une démo: Hacker News dans unX-Frame-Bypass
. (Testé dans Chrome & Firefox.)X-Frame-Options: sameorigin
etX-Frame-Options: deny
.L'ajout d'un
à mon lien du facebook de l'onglet correction du problème pour moi...
Il y a un plugin pour Chrome, que les gouttes que l'entrée d'en-tête (pour une utilisation personnelle uniquement):
https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe/reviews
Si vous obtenez cette erreur en essayant d'intégrer Vimeo contenu, modifier la src de l'iframe,
à partir de: https://vimeo.com/63534746
: http://player.vimeo.com/video/63534746
J'ai eu le même problème lorsque j'ai essayé d'incorporer moodle 2 en iframe, la solution est
Site administration ► Security ► HTTP security
et vérifierAllow frame embedding
C'est la solution les gars!!
La seule chose qui a fonctionné pour facebook apps!
Solution pour le chargement d'un site web dans une iFrame même les plus difficiles de la x-frame option est définie à refuser sur le site web externe.
Si vous souhaitez charger un autre site web dans une iFrame et vous obtenez le
Display forbidden by X-Frame-Options”
erreur alors vous pouvez résoudre ce problème en créant un serveur proxy côté de script.La
src
attribut de l'iFrame pourrait avoir une url comme ceci:/proxy.php?url=https://www.example.com/page&key=somekey
Alors proxy.php ressemblerait à quelque chose comme:
Cela passe par le bloc, parce que c'est une demande qui pourrait aussi bien avoir été une simple page de navigateur de visite.
Être conscient: Vous souhaiterez peut-être améliorer la sécurité dans ce script. Parce que les pirates pourrait commencer le chargement de pages web par l'intermédiaire de votre script de proxy.
J'ai essayé à peu près toutes les suggestions. Cependant, la seule chose qui a vraiment résolu la question était:
Créer un
.htaccess
dans le même dossier que votre fichier PHP se trouve.Ajouter cette ligne dans le htaccess:
Header always unset X-Frame-Options
Intégrer le PHP par un iframe à partir d'un autre domaine de travail par la suite.
En plus, vous pouvez ajouter au début de votre fichier PHP:
Qui n'est cependant pas nécessaire dans mon cas.
Il semble que X-Frame-Options Permettent-https://... est dépréciée et a été remplacé (et est ignorée) si vous utilisez Contenu de la Politique de Sécurité en-tête de la place.
Voici la référence complète: https://content-security-policy.com/
J'ai eu le même problème avec mediawiki, c'était parce que le serveur a refusé l'incorporation de la page dans un iframe pour des raisons de sécurité.
Je l'ai résolu écrit
dans le mediawiki php fichier de config.
Espère que cela aide.
FWIW:
Nous avons eu une situation où nous avons besoin de tuer notre
iFrame
lorsque cette "disjoncteur", le code a montré jusqu'à. Donc, j'ai utilisé le PHPfunction get_headers($url);
de vérifier l'URL distante avant de le présenter dans uniFrame
. Pour de meilleures performances, j'ai mis en cache les résultats dans un fichier donc je n'étais pas de faire une connexion HTTP à chaque fois.J'ai été en utilisant Tomcat 8.0.30, aucun des suggestions a fonctionné pour moi. Comme nous sommes à la recherche pour mettre à jour le
X-Frame-Options
et mis àALLOW
, voici comment j'ai configuré pour permettre à intégrer des iframe:La seule question qui a un tas de réponses. Bienvenue sur le guide, je souhaite que j'avais quand j'étais brouillage pour cette pour le faire fonctionner à 10:30 dans la nuit à la date d'échéance de la journée... FB fait un peu bizarre de choses avec de la toile applications, et bien, vous avez été prévenu. Si vousune re toujours là et vous avez une application Rails qui apparaîtra derrière un Facebook Toile, alors vous aurez besoin de:
Gemfile:
config/facebook.yml
config/application.rb
config/initializers/omniauth.rb
application_controller.rb
Vous avez besoin d'un contrôleur à l'appel de Facebook la toile de paramètres, j'ai utilisé
/canvas/
et fait le trajet aller les principauxSiteController
pour cette application:de connexion.html.erb
Sources
vous ne mettez pas cet en-tête dans le contrôleur app.
target='_parent'
À l'aide de Kevin Vella idée, j'ai essayé d'ajouter l'attribut correspondant à des éléments de formulaire par PayPal bouton du générateur. A travaillé pour moi afin que Paypal n'est pas ouvert dans une nouvelle fenêtre/onglet.
Je ne suis pas sûr de savoir comment il est pertinent, mais j'ai construit un travail autour de cela. Sur mon site, j'ai voulu afficher le lien dans une fenêtre modale qui contenait une iframe qui charge l'URL.
Ce que j'ai fait est, je l'ai lié l'événement click sur le lien vers cette fonction javascript. Tout cela n'est de faire une requête vers un fichier PHP qui vérifie l'URL en-têtes X-FRAME-Options avant de décider de charger l'URL dans la fenêtre modale ou à rediriger.
Voici la fonction:
Voici le fichier PHP du code qui vérifie:
Espère que cette aide.
Je suis tombé sur ce problème lors de l'exécution d'un site wordpress. J'ai essayé toutes sortes de choses à réparer, et n'était pas sûr de savoir comment, en définitive, la question était parce que j'étais à l'aide de DNS redirection avec du ruban, et les liens vers des sites externes n'ont pas été traitées correctement. c'est à dire que mon site était hébergé à http://123.456.789/index.html mais a été masqué à exécuter à http://somewebSite.com/index.html. Quand je suis entré dans http://123.456.789/index.html dans le navigateur en cliquant sur ces mêmes liens a pas entraîné de X-frame-origines des problèmes dans le JS de la console, mais l'exécution http://somewebSite.com/index.html fait. Afin de bien le masque que vous devez ajouter à votre hôte DNS de serveurs de noms de votre domaine de service, c'est à dire godaddy.com devrait avoir des serveurs de noms exemple, ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com si vous avez été en utilisant digitalocean.com en tant que votre service d'hébergement.
remove_action( 'admin_init', 'send_frame_options_header',10);
pour contourner ce problème...Il est surprenant que personne ici n'a jamais mentionné
Apache
paramètres du serveur (*.conf
fichiers) ou.htaccess
fichier lui-même comme étant une cause de cette erreur. Recherche par le biais de votre.htaccess
ouApache
fichiers de configuration, assurez-vous de ne pas avoir le jeu suivant deDENY
:Header always set X-Frame-Options DENY
De la modifier à
SAMEORIGIN
, rend les choses fonctionnent comme prévu:Header always set X-Frame-Options SAMEORIGIN
La seule vraie réponse, si vous n'avez pas de contrôle sur les en-têtes sur votre source que vous voulez dans votre iframe, c'est-à-proxy-il. Avoir un serveur d'agir en tant que client, de recevoir la source, la bande de la problématique des en-têtes, ajouter de la SCRO si nécessaire, puis la commande ping sur votre propre serveur.
Il y a une autre réponse, en expliquant comment écrire une telle procuration. Il n'est pas difficile, mais j'étais sûr que quelqu'un a dû l'avoir fait avant. Il est juste difficile de trouver, pour une raison quelconque.
Je l'ai enfin fait de trouver quelques sources:
https://github.com/Rob--W/cors-anywhere/#documentation
^ privilégiées. Si vous avez besoin d'rares d'utilisation, je pense que vous pouvez juste utiliser son heroku app. Sinon, c'est le code à exécuter vous-même sur votre propre serveur. Remarque assurez-vous que les limites sont.
whateverorigin.org
^ deuxième choix, mais assez vieux. soi-disant nouveaux choix en python: https://github.com/Eiledon/alloworigin
puis il y a le troisième choix:
http://anyorigin.com/
Qui semble permettre un peu libre d'utilisation, mais vous mettra sur une public à la honte de la liste si vous ne payez pas et utilisent un certain montant non précisé, que vous ne peut être retiré que si vous payez les frais...
Ne sont pas mentionnés, mais peut aider dans certains cas:
Utiliser cette ligne étant donné ci-dessous au lieu de
header()
fonction.j'ai eu ce problème, et résolu d'édition qu'il httd.conf
j'ai changé SAMEORIGIN à GOFORIT
et redémarré le serveur
Modifier .htaccess si vous souhaitez supprimer X-Frame-Options à partir d'un répertoire entier.
Et ajouter la ligne: en-Tête de toujours unset X-Frame-Options
[contenu de: Surmonter "Afficher interdit par X-Frame-Options"
Essayer cette chose, je ne pense pas que quelqu'un l'a suggéré dans le Sujet, cela permettra de résoudre 70% de votre question, pour certains, d'autres pages, vous avez de la ferraille, j'ai la solution complète, mais pas pour le public,
Ci-dessous pour AJOUTER votre iframe
sandbox="allow-même d'origine autoriser les scripts autoriser les popups de permettre à des formes"