26

我有一个网站,允许用户将图像发布到 Facebook 页面。我使用表单并将其发布到隐藏的 IFRAME,以防止用户在发布图像后被重定向。

表格定义:

<form name="myform" id="myform" enctype="multipart/form-data" action="" method="POST" onsubmit="getAction(this);" target="uploader">
//....form code....//

框架:

<iframe name="uploader" width=2px height=2px style="visibility: hidden"></iframe>

我的问题是,在我自己的Internet Explorer 9 中,当我尝试上传图像时,出现以下错误:

SEC7111: HTTPS security is compromised by res://ieframe.dll/dnserrordiagoff.htm 
SEC7111: HTTPS security is compromised by res://ieframe.dll/ErrorPageTemplate.css 
SEC7111: HTTPS security is compromised by res://ieframe.dll/errorPageStrings.js 
SEC7111: HTTPS security is compromised by res://ieframe.dll/httpErrorPagesScripts.js 
SEC7111: HTTPS security is compromised by res://ieframe.dll/noConnect.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/down.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/favcenter.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/favcenter.png 
SEC7111: HTTPS security is compromised by res://ieframe.dll/background_gradient.jpg 

它变得更奇怪了,就像我朋友的电脑一样,它有相同的 IE9 版本,并且连接到同一个网络,帖子工作得很好(它也在我家的另一台电脑上工作,我家的另一台电脑上也工作哥哥的电脑)。我可以说这只是一个本地问题,但是由于这个站点涉及许多客户,我不能不理解这个错误,如果它发生在我自己的操作系统上,它也可能发生在其他机器上。

我还要注意,这在 Chrome 和 FireFox 上运行没有问题

我不确定这是与代码相关的问题,我尝试谷歌搜索并找到Microsoft ArticleThis article。但是我删除了任何第三方 IE 插件,我们和我的朋友连接到同一个路由器(所以这不是路由器问题)并且我已经安装了最新的 Windows 更新。

我目前不知道如何解决这个问题,所以我想问一下你们中是否有人遇到过类似/相同的错误?也许对解决方案有一些想法......

如果需要,我很乐意提供更多代码,但我不想从一开始就用代码填充问题,因为在大多数情况下它都可以正常工作。

谢谢。

4

6 回答 6

11

最好在服务器级别而不是客户端解决此问题,因为我们不能指望所有其他网站访问者更改他们的 IE 设置,以便他们可以使用您的网站。

正如您所提到的,它确实是由您在https环境中的 iframe 引起的。IE9对此特别严格,因此您需要在 x-frame-options 中定义它:

对于 Apache,HTTP 服务器

在 Apache Web Server 的 httpd.conf 文件中添加/更改以下行

Header always append X-Frame-Options SAMEORIGIN

确保它没有设置为DENY. 重启网络服务器

让我知道这是否有帮助

于 2014-04-25T07:19:11.317 回答
7
于 2012-07-13T17:41:52.467 回答
0

我们昨天在 IE11 控制台中遇到了这些确切的错误。对我们来说,在 IIS 中将 iframed 内容(将成为 iframe 的 src 的页面)的请求标头设置为 P3P=NOI 会有所帮助。我们通过根据上面的 Georges 回答检查请求标头到达那里。

该方案的不同之处在于我们通过查询参数将门户生成的数字传递给 iframed 内容。门户和 iframed 站点都运行 https。

于 2016-02-11T09:17:10.220 回答
0

对我来说,这是由于我连接的站点没有有效的 HTTPS 证书造成的。我为开发创建了一个 Windows 不认为是受信任证书的证书。

于 2018-09-18T08:46:09.700 回答
0

感谢@George Answer,我们能够查明问题 -

我们最近在项目中启用 Spring Security 时遇到了这个问题。在知道问题是由于 X-Frame-Options=DENY (在开发人员工具中作为响应标头获得)后,我们意识到默认情况下 Spring Security 会附加带有默认值的标头 -

安全标头

删除它解决了我们的问题 -

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends
   WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      // ...
      .headers().disable();
  }
}
于 2021-04-21T10:50:48.963 回答
-2

'res://ieframe.dll/dnserrordiagoff.htm#' 的解决方案:
1. 打开控制面板-Internet 选项
2. 隐私选项卡
3. 设置为低
4. 应用并确定。

于 2013-10-25T12:02:05.553 回答