如何在iframe上设置“X-Frame-Options”?
如果我这样创build一个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({
我该如何解决这个错误:
拒绝在框架中显示
'https://www.google.com.ua/?gws_rd=ssl'
,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。
用JavaScript?
您不能在iframe
上设置X-Frame-Options
。 这是您从中请求资源的域设置的响应标头(在您的示例中为google.com.ua
)。 在这种情况下,他们已将标题设置为SAMEORIGIN
,这意味着它们已经禁止在其域外的iframe
加载资源。 有关更多信息,请参阅MDN上的X-Frame-Options响应头 。
快速检查标题(在Chrome开发人员工具中显示)显示主机返回的X-Frame-Options
值。
你似乎误解了这个问题。 X-Frame-Options
是一个返回的请求头,表示请求的域是否允许自己显示在一个帧内。 它与javascript或HTML无关,不能被请求的发起者改变。
这个网站已经设置了这个标题,不允许它显示在iframe
。 没有办法阻止这种行为。
进一步阅读X-Frame-Options
如果您控制发送iframe内容的服务器,则可以在Web服务器中设置X-Frame-Options
的设置。
configurationApache
要为所有页面发送X-Frame-Options标题,请将其添加到您网站的configuration中:
Header always append X-Frame-Options SAMEORIGIN
configurationnginx
要将nginxconfiguration为发送X-Frame-Options标头,请将其添加到您的http,服务器或位置configuration中:
add_header X-Frame-Options SAMEORIGIN;
没有configuration
这个头部选项是可选的,所以如果没有设置选项,你可以select将其configuration到下一个实例(例如访问者浏览器或代理)
来源: https : //developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
解决scheme是安装一个浏览器插件。
一个网站发出的值为DENY
HTTP头X-Frame-Options
(或带有不同服务器源的SAMEORIGIN
)不能被集成到IFRAME中,除非你通过安装一个忽略X-Frame-Options
标题(例如Chrome的忽略X框架标题 )。
请注意,出于安全原因,不build议这样做。
X-Frame-Options HTTP响应头可用于指示是否允许浏览器在<frame>
, <iframe>
或<object>
呈现页面。 网站可以通过确保他们的内容没有embedded到其他网站来使用它来避免点击劫持攻击。
欲了解更多信息: https : //developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
我有这个问题的替代解决scheme,我将通过使用PHP演示:
iframe.php:
<iframe src="target_url.php" width="925" height="2400" frameborder="0" ></iframe>
target_url.php:
<?php echo file_get_contents("http://www.example.com"); ?>
为此,您需要匹配您的apache或您正在使用的任何其他服务的位置
如果你使用的是Apache,那么在httpd.conf文件中。
<LocationMatch "/your_relative_path"> ProxyPass absolute_path_of_your_application/your_relative_path ProxyPassReverse absolute_path_of_your_application/your_relative_path </LocationMatch>
你可以在你要在iframe中加载的站点的webconfiguration中设置x-frame-option像这样
<httpProtocol> <customHeaders> <add name="X-Frame-Options" value="*" /> </customHeaders> </httpProtocol>