IE9 res://ieframe.dll 错误

Posted

技术标签:

【中文标题】IE9 res://ieframe.dll 错误【英文标题】:IE9 res://ieframe.dll Error 【发布时间】:2012-07-10 23:13:38 【问题描述】:

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

表单定义:

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

iframe:

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

我的问题是,在 My Own 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 Article 和This article。但是我删除了任何第三方 IE 插件,我们和我的朋友连接到同一个路由器(所以这不是路由器问题)并且我已经安装了最新的 Windows 更新。

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

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

谢谢。

【问题讨论】:

【参考方案1】:

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

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

对于 Apache,HTTP 服务器

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

Header always append X-Frame-Options SAMEORIGIN

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

如果有帮助请告诉我

【讨论】:

我相信这个设置是为了控制你的页面是否允许嵌入到其他网站上,或者不允许嵌入到框架和 iframe 中。 developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options【参考方案2】:

如果它在您朋友的 IE 9 中运行,但在您的 IE 9 中不可用 - 然后比较您的安全设置

我怀疑,特别是名为“在 IFRAME 中启动程序和文件” 的那个可能会破坏交易。

如果不是,请尝试将提供此功能的每个安全选项从“禁用”设置为“提示”,然后查看是否在 IE 中收到任何消息。

【讨论】:

作为开发人员,我们不应该期望我们的用户对他们的浏览器设置进行任何更改。这是在后端(或代理)上启用的安全功能,我猜是有原因的。它必须在后端的安全标头中修复。【参考方案3】:

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

我们通过查询参数将门户生成的数字传递给 iframed 内容的方式有所不同。门户和 iframed 站点都运行 https。

【讨论】:

【参考方案4】:

对我来说,这是因为我连接的站点没有有效的 HTTPS 证书。我为开发创建了一个,Windows 不将其识别为受信任的证书。

【讨论】:

【参考方案5】:

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

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

Security Headers

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

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends
   WebSecurityConfigurerAdapter 

  @Override
  protected void configure(HttpSecurity http) throws Exception 
    http
      // ...
      .headers().disable();
  

【讨论】:

【参考方案6】:

“res://ieframe.dll/dnserrordiagoff.htm#”的解决方案: 1.打开控制面板-Internet选项 2. 隐私标签 3.设置低 4. 申请并确定。

【讨论】:

以上是关于IE9 res://ieframe.dll 错误的主要内容,如果未能解决你的问题,请参考以下文章

文件声明错误 IE9

从画布读取时出现 IE9 安全错误(非跨域)

IE9 错误 80020102,使用带有 doctype strict 的 vbscript Preserve 关键字

IE9,使用 CertEnroll.dll 时自动化服务器无法创建对象错误

Intranet 站点的 IE9 兼容模式具有错误的用户代理字符串

IE9 JavaScript 错误:SCRIPT5007:无法获取属性“ui”的值:对象为空或未定义