在 Internet Explorer 中执行文件的超链接和文件下载对话框

文章翻译 文章翻译
文章编号: 232077 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

许多网站特别是在公司的 intranet 上的文件,用户需要在本地系统上执行的具有超链接。明显由于安全原因 Internet Explorer 会阻止从自动运行而不向用户显示对话框提示的某些窗体的任何已下载的可执行文件或其他可能危险的文件的任何超链接操作。

在这种情况下不以任何方式可以预防 文件下载 对话框。这包括使用的 HTML 标记中承载 web 浏览器 控件和更改安全区域选项页的脚本。

遗憾的是,此对话框可以中断依赖于这些类型的链接以简化的可执行文件存储在 Web 服务器上使用的基于 Web 的接口。本文讨论了用于自动执行的超链接的文件的两个其他安全方法。

更多信息

Internet Explorer 文件下载 对话框中显示两个主要原因: 安全和选择。为安全,浏览器必须永远不会执行自动没有潜在的用户干预的情况下的用户的系统上具有潜在危险的文件。此外,网站具有传统上用于链接的两个不同的意图的可执行文件: 在网站计划为用户或者执行链接的文件或将其保存。遗憾的是,没有执行任何操作的定位点标记 (<a>HTML 规范中) 或为 Web 站点,以指示这需要对特定的链接提供了一种方法任何当前脚本对象模型。因此,负担,所选择的是在 $ 用户上。用户必须决定是否要运行或保存该文件。

Internet Explorer 决定是否显示主要通过检查文件的扩展名,并在注册表中读取该文件的应用程序正在查找的 文件下载 对话框。对于大多数类型的文件,用户可以清除对话框的权限授予不显示该对话框在将来为这些特定的文件类型的 Internet Explorer 中的 打开这种类型的文件之前始终询问 选项。用户还可以 编辑文件类型 对话框可访问) 中的此设置更改从外壳程序的 文件夹选项 中通过翻转 下载后确认打开 复选框。

但是,Internet Explorer 中包含文件扩展名它本身就 distrusts 的预定义的、 硬编码的列表。这些扩展对应于泛型的可执行文件和其他类型的文件具有损害不正确的安全保护措施的情况下该用户的计算机功能。文件下载 对话框中不能不能为这些类型的任何文件。打开此类型的文件之前始终询问 选项将被对话框上灰显,您将无法选择它。下面是这些文件类型的文件扩展名的列表。
收起该表格展开该表格
.ade.csh.lnk.mda.pif.vb
.adp.exe.mad.mdb.prf.vbe
.app.fxp.maf.mde.prg.vbs
.asp.hlp.mag.mdt.pst.vsd
.bas.hta.mam.mdw.reg.vsmacros
.bat.inf.maq.mdz.scf.vss
.cer.ins.mar.msc.scr.vst
.chm.isp.mas.msi.sct.vsw
.cmd.its.mat.msp.shb.ws
.com.js.mau.mst.shs.wsc
.cpl.jse.mav.ops.tmp.wsf
.crt.ksh.maw.pcd.url.wsh
作为一个约定这篇文章将任何这些类型的文件称为"可执行文件"的文件。

现在考虑一下该方案的简单公司 intranet 网站,它包含的好记的 Web 页上的可执行文件链接的列表。链接旨在为下载和立即运行。考虑到可执行文件是最有可能能保证安全公司 (嗯,与其他典型计算机程序为安全),也可以是非常繁琐,尤其是如果每天都使用此页面,则具有重复处理 文件下载 对话框的用户。

即使可执行文件已经过签名,并且签名者受信任的用户通过 Internet Explorer 仍会显示 文件下载 对话框。更糟的是尚未为该 hapless 的 Web 作者 Windows UNC 超链接--"\\server\share"的超链接跳过 Web 服务器--将遵守相同 iniquity。

对于公司的 intranet 没有纯这篇文章将称为 IFRAME 链接 的超链接的一种替代方法。Internet 站点不能使用此方法,但可以使用本文指的是该方法作为 Internet 代码下载链接。(后一种方法是可用于公司,过)。

注意在默认的安全级别这两种方法仍将显示安全对话框。与有问题 文件下载 对话框,不同但,所有这些安全对话框都是通过标准的基于区域的安全选项可控制。对于链接方法将 IFRAME,读取对话框中可能出现的"此项目上运行系统命令可能不安全..."和由自定义安全选项 启动程序和文件在一个 IFRAME 控制。对于 Internet 代码下载链接的技术可能会出现读取对话框"待办事项您想要安装并运行...",并由自定义安全控制选项 下载已签名的 ActiveX 控件

如果您在本文中,在 intranet 环境中使用该技术,强烈建议这些设置更改得到批准,并由公司的管理员更改为 Web 站点的所有用户。Internet 资源管理器管理工具包 (IEAK) 提供了一个方便的机制,管理员可以控制和广播的浏览器设置,如本。有关更多的信息,请访问以下 Microsoft TechNet 网站:
http://technet.microsoft.com/en-us/ie/bb219517.aspx
公用的 Internet 站点应 要求用户更改任何安全设置,以查看他们的网站。而是,需要更改的安全的站点应该请求用户将该网站添加到他们的"受信任的站点"列表中 Internet 选项 安全属性页。此特定的站点将然后运行在 $ 低下这两种方法在这篇文章中将不显示提示的情况下工作足够安全。

IFRAME 链接

在这种替代方法在 Web 页利用 Internet Explorer 能够显示资源管理器样式内浮动帧 (<iframe>) 的文件列表视图。请按照下列步骤操作:
  1. 将文件移动到一个特殊的服务器、 共享,和目录中,在整个预期用户访问者有权访问 Windows UNC 通过在公司 Intranet 上。
  2. 创建一个单独的目录,对于每个可执行文件,并将文件复制到该目录。目录应为空,除非单个可执行文件。
  3. 无论是否使用了指向可执行文件的超链接,包括以下形式的 HTML:
    Click on the icon in the following window to run this very special 
    program automatically without annoying dialog boxes:
    
    <IFRAME SRC="\\server\share\directory"></IFRAME>
    						
    请注意在 HTML 代码指向该文件位于中,该目录,而不是文件本身。
目标的文件的目录将出现在一个资源管理器样式的文件视图。当用户单击视图中的图标文件将执行就像用户已经单击了传统的 Windows 资源管理器窗口中文件图标。

Internet 代码下载链接

此复杂替代方法在 Web 页会在普通的文件下载过程跳过通过利用 Internet 代码下载。Internet 下载的代码是在 Internet Explorer 功能,它允许自动下载 ActiveX 控件和本机代码的其他对象的网页。通过 Internet 代码下载获得的文件通过是通过安全选项可控制该 ActiveX 安全框架。
  1. 如果"可执行文件"不是如.bat 的文件可签名的 PE (.exe),则该文件必须具有以下形式的 INF.cab 文件中打包
    [version]
       signature="$CHICAGO$"
       AdvancedINF=2.0
    [Add.Code]
       file.zzz=file.zzz
    [file.zzz]
       clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
       FileVersion=1,0,0,0
       hook=zzzinstaller
    [zzzinstaller]
       run=%EXTRACT_DIR%\file.zzz
    						
    File.zzz 上面的实例替换为要运行该可执行文件。

    有关如何打包.cab 文件的详细信息请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
    http://msdn.microsoft.com/en-us/library/aa741200(VS.85).aspx
  2. 请确保该.exe 或.cab 代码签名。如果有未被签名.exe 此,可以使用 CryptoAPI 码签名工具。有关详细信息在"安全性"标题下的 MSDN 平台 SDK 中的 CryptoAPI 文档,请参阅。

    出于安全原因签名代码适合于组织的过程由一个受信任的整个组织机构最好地处理。代码签名要求成本高昂的证书,如 verisign) 颁发的外部供应商的采购或 intranet 上如 Microsoft 证书服务器证书服务器的维护。
  3. 链接和脚本启动不提示的情况下已签名的代码所需的一个原则是使用此示例页:
    <HTML><HEAD><TITLE>Page of executable links</TITLE></HEAD>
    <BODY>
    <BR/>
    
    <!-- hyperlink uses central script function called linkit() -->
    <A HREF="" onclick="return linkit('signed-testfile.exe');">
    SIGNED-CLOCK.EXE</A>
    
    <SCRIPT>
    // linkit puts filename into HTML content and spews it into iframe
    function linkit(filename)
    {
       strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" +
          "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='";
       strpageend = "'></OBJECT></BODY></HTML>";
       runnerwin.document.open();
       runnerwin.document.write(strpagestart + filename + strpageend);
       window.status = "Done.";
       return false;  // stop hyperlink and stay on this page
    }
    </SCRIPT>
    
    <!-- hidden iframe used for inserting html content -->
    <IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/>
    
    </BODY></HTML>
    					
本文讨论了在第三方产品是由独立于 Microsoft 的公司生产的。Microsoft 会使没有担保,或暗示或其他方式,性能或可靠性,这些产品。

属性

文章编号: 232077 - 最后修改: 2007年7月16日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
关键字:?
kbmt kbdhtml kbinfo kbnavigation kbsecurity KB232077 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 232077
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com