如何在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>