Wenn ich so etwas erstelle iframe
:
var dialog = $('<div id="' + dialogId + '" align="center"><iframe id="' + frameId + '" src="' + url + '" width="100%" frameborder="0" height="'+frameHeightForIe8+'" data-ssotoken="' + token + '"></iframe></div>').dialog({
Wie kann ich den Fehler beheben:
Die Anzeige
'https://www.google.com.ua/?gws_rd=ssl'
in einem Frame wurde abgelehnt, da "X-Frame-Optionen" auf "SAMEORIGIN" gesetzt wurde.
mit JavaScript?
quelle
X-Frame-Options
ist ein Header, der in der Antwort auf die Anforderung enthalten ist, anzugeben, ob die angeforderte Domäne sich innerhalb eines Frames anzeigen lässt. Es hat nichts mit Javascript oder HTML zu tun und kann vom Absender der Anfrage nicht geändert werden.Diese Website hat diesen Header so eingestellt, dass er nicht in einem angezeigt werden kann
iframe
. Ein Client kann nichts tun, um dieses Verhalten zu stoppen.Lesen Sie weiter auf X-Frame-Optionen
quelle
Wenn Sie die Kontrolle über den Server haben, der den Inhalt des Iframes sendet, können Sie die Einstellung für festlegen
X-Frame-Options
Ihren Webserver .Apache konfigurieren
Fügen Sie Folgendes zur Konfiguration Ihrer Site hinzu, um den X-Frame-Options-Header für alle Seiten zu senden:
Nginx konfigurieren
Um nginx so zu konfigurieren, dass der X-Frame-Options-Header gesendet wird, fügen Sie diesen entweder Ihrer http-, Server- oder Standortkonfiguration hinzu:
Keine Konfiguration
Diese Header-Option ist optional. Wenn die Option überhaupt nicht festgelegt ist, können Sie sie für die nächste Instanz konfigurieren (z. B. den Besucherbrowser oder einen Proxy).
Quelle: https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
quelle
add_header Strict-Transport-Security "max-age=86400; includeSubdomains"; add_header X-Frame-Options DENY;
aus den Nginx-Schnipsel, und dann hat es sofort funktioniert.Da die Lösung für die Serverseite nicht wirklich erwähnt wurde:
Man muss solche Dinge einstellen (Beispiel von Apache), dies ist nicht die beste Option, da es in allem erlaubt ist, aber nachdem Sie gesehen haben, dass Ihr Server richtig funktioniert, können Sie die Einstellungen leicht ändern.
quelle
nicht wirklich ... ich habe verwendet
quelle
Wenn nichts hilft und Sie diese Website dennoch in einem Iframe präsentieren möchten, sollten Sie die X Frame Bypass-Komponente verwenden, die einen Proxy verwendet.
quelle
Der X-Frame-Options HTTP - Response - Header kann verwendet werden , um anzuzeigen , ob ein Browser erlaubt sein sollte , eine Seite in einem zu machen
<frame>
,<iframe>
oder<object>
. Websites können dies verwenden, um Clickjacking-Angriffe zu vermeiden, indem sichergestellt wird, dass ihr Inhalt nicht in andere Websites eingebettet ist.Für mehr Informationen: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
Ich habe eine alternative Lösung für dieses Problem, die ich mithilfe von PHP demonstrieren werde:
iframe.php:
target_url.php:
quelle
Zu diesem Zweck müssen Sie den Speicherort in Ihrem Apache oder einem anderen von Ihnen verwendeten Dienst abgleichen
Wenn Sie Apache verwenden, dann in der Datei httpd.conf.
quelle
Die Lösung besteht darin, ein Browser-Plugin zu installieren.
Eine Website, die einen HTTP-Header
X-Frame-Options
mit dem WertDENY
(oderSAMEORIGIN
einem anderen Serverursprung) ausgibt, kann nicht in einen IFRAME integriert werden ... es sei denn, Sie ändern dieses Verhalten, indem Sie ein Browser-Plugin installieren, das denX-Frame-Options
Header ignoriert (z. B. X-Frame-Header von Chrome ignorieren) ).Beachten Sie, dass dies aus Sicherheitsgründen überhaupt nicht empfohlen wird.
quelle
Sie können die x-frame-Option in der Webkonfiguration der Site festlegen, die Sie in iframe wie folgt laden möchten
quelle
Sie können den x-iframe nicht wirklich in Ihren HTML-Text einfügen, da er vom Websitebesitzer bereitgestellt werden muss und innerhalb der Serverregeln liegt.
Was Sie wahrscheinlich tun können, ist eine PHP-Datei zu erstellen, die den Inhalt der Ziel-URL lädt und diese PHP-URL rahmt. Dies sollte reibungslos funktionieren.
quelle
Sie können dies in der Konfigurationsdatei auf Tomcat-Instanzebene (web.xml) tun. Sie müssen den 'Filter' und die Filterzuordnung 'in der Konfigurationsdatei web.xml hinzufügen. Dadurch werden die [X-Frame-Optionen = DENY] auf der gesamten Seite hinzugefügt, da es sich um eine globale Einstellung handelt.
quelle
Wenn Sie dem XML-Ansatz folgen, funktioniert der folgende Code.
quelle