Ejecución de archivos mediante hipervínculos y el cuadro de diálogo Descarga de archivos en Internet Explorer

Seleccione idioma Seleccione idioma
Id. de artículo: 232077 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Muchos sitios Web, particularmente en intranets corporativas, tienen hipervínculos a los archivos que el usuario necesita ejecutar en el sistema local. Por motivos obvios de seguridad, Internet Explorer evita que cualquier acción del hipervínculo ejecute automáticamente alguna aplicación ejecutable descargada u otros archivos posiblemente peligrosos sin mostrar al usuario alguna forma de mensaje en un cuadro de diálogo.

En estas situaciones, el cuadro de diálogo Descarga de archivos no es de ninguna forma evitable. Esto incluye el uso de etiquetas HTML, scripts en la página, hospedar el control WebBrowser y cambiar las opciones de zona de seguridad.

Desgraciadamente, este cuadro de diálogo puede no ser conveniente en una interfaz basada en Web que confíe en estos tipos de vínculos para simplificar el uso de los archivos ejecutables que se almacenan en el servidor Web. En este artículo se explican dos métodos seguros alternativos para ejecutar automáticamente los archivos mediante hipervínculos.

Más información

Internet Explorer muestra el cuadro de diálogo Descarga de archivos por dos razones principalmente: la seguridad y la elección. Para que sea seguro, el explorador nunca debe ejecutar de forma automática un archivo potencialmente peligroso en el sistema del usuario sin la intervención del mismo. Además, los sitios Web han utilizado tradicionalmente los vínculos a los archivos ejecutables con dos intenciones diferentes: en el sitio se pretende que el usuario ejecute el archivo vinculado o que lo guarde. Desgraciadamente, no hay nada en la especificación de HTML en relación a la etiqueta delimitadora (<A>) o algún modelo de objetos de script actual que proporcione un medio para que el sitio Web indique qué se desea con un vínculo determinado. Por lo tanto, el peso de la elección recae en el usuario. El usuario debe decidir si desea ejecutar o guardar el archivo.

Internet Explorer decide si mostrar el cuadro de diálogo Descarga de archivos principalmente comprobando la extensión del archivo y buscando en el Registro una aplicación que lo lea. Con la mayoría de tipos de archivos, el usuario puede desactivar la opción Preguntar siempre antes de abrir este tipo de archivos en el cuadro de diálogo, que concede permiso a Internet Explorer para no mostrarlo en el futuro para esos tipos de archivo concretos. Los usuarios también pueden cambiar esta configuración en el cuadro de diálogo Editar tipos de archivo accesible desde las Opciones de carpeta del shell si se cambia la casilla Confirmar apertura después de la descarga.

Sin embargo, Internet Explorer contiene una lista predefinida, codificada de forma rígida, de extensiones de archivo de los que desconfía esencialmente. Estas extensiones corresponden a las aplicaciones ejecutables genéricas y a otros tipos de archivos que tienen la capacidad de dañar el equipo del usuario que no tenga las medidas de seguridad apropiadas. El cuadro de diálogo Descarga de archivos no se puede evitar para ningún archivo de estos tipos. La opción Preguntar siempre antes de abrir este tipo de archivos se atenuará en el cuadro de diálogo y no se podrá seleccionar. A continuación se enumeran las extensiones de estos tipos de archivo.
Contraer esta tablaAmpliar esta tabla
.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
Como convención, en este artículo se hace referencia a cualquiera de estos tipos de archivo como archivos "ejecutables".

Ahora considere un escenario con un sitio Web simple de una intranet corporativa que incluya una lista de vínculos ejecutables en una página Web fácil de usar. Los vínculos se supone que se descargan y se ejecutan inmediatamente. Dado que lo más probable es que la compañía garantice que los ejecutables son seguros (tan seguros como cualquier otro programa de PC típico), puede ser sumamente tedioso hacer que el usuario tenga que encontrarse repetidamente con el cuadro de diálogo Descarga de archivos, sobre todo si esta página se utiliza cotidianamente.

Aun cuando se hayan firmado los archivos ejecutables y el usuario confíe en el firmante, Internet Explorer seguirá mostrando el cuadro de diálogo Descarga de archivos. Y lo que es peor aún para los desventurados creadores web, los hipervínculos UNC de Windows (los hipervínculos "\\servidor\recursoCompartido" que omiten el servidor web) también están sujetos a la misma injusticia.

En las intranets corporativas hay una alternativa a los hipervínculos puros a la que en este artículo se hace referencia como vinculación de IFRAME. Los sitios de Internet no pueden utilizar este método pero pueden usar el que se menciona en este artículo como Vinculación de descarga de código de Internet. (El último método está disponible para las empresas también).

Nota: en el nivel de seguridad predeterminado, ambas técnicas siguen mostrando los cuadros de diálogo de seguridad. Sin embargo, a diferencia del molesto cuadro de diálogo Descarga de archivos, todos estos cuadros de diálogo de seguridad se pueden controlar a través de las opciones de seguridad basadas en las zonas estándar. Con la técnica de vinculación de IFRAME, el cuadro de diálogo que puede aparecer indica "Ejecutar un comando del sistema en este elemento puede ser no seguro..." y se controla mediante la opción de seguridad personalizada Iniciar programas y archivos en IFRAME. Con la técnica de vinculación de descarga de código de Internet, el cuadro de diálogo que puede aparecer indica "Desea instalar y ejecutar..." y se controla mediante la opción de seguridad personalizada Descargar los controles ActiveX firmados.

Si utiliza las técnicas de este artículo en el entorno de una intranet, se recomienda encarecidamente que los administradores corporativos aprueben y modifiquen estos cambios de configuración para todos los usuarios del sitio Web. El Kit de administración de Internet Explorer (IEAK, Internet Explorer Administration Kit) proporciona un mecanismo fácil para que los administradores controlen y difundan valores de configuración del explorador como éste. Para obtener más información al respecto, visite el siguiente sitio web de Microsoft TechNet:
http://www.microsoft.com/technet/prodtechnol/ie/ieak/es/default.mspx
Los sitios de Internet públicos no deberían exigir que los usuarios modificaran la configuración de seguridad para ver su sitio Web. En cambio, los sitios que requieren alterar la seguridad deberían solicitar que el usuario agregara el sitio a su lista "Sitios de confianza" en la página de propiedades de seguridad de Opciones de Internet. Este sitio concreto usará entonces una seguridad baja suficiente con la que las dos técnicas mencionadas en este artículo funcionarán sin mostrar ningún cuadro de diálogo.

Vinculación de IFRAME

En esta alternativa, la página Web se aprovecha de la capacidad de Internet Explorer para mostrar la lista de archivos al estilo del Explorador de Windows dentro de marcos flotantes (<IFRAME>). Siga estos pasos:
  1. Mueva los archivos a un servidor especial, recurso compartido y directorio de la intranet corporativa en los que los usuarios dispongan de los permisos necesarios para obtener acceso a través de UNC de Windows.
  2. Cree un directorio independiente para cada archivo ejecutable y copie los archivos en los directorios. Los directorios deberían estar vacíos, excepto con el único archivo ejecutable.
  3. Dondequiera que se hubiera utilizado un hipervínculo a la aplicación ejecutable, incluya HTML con el formato siguiente:
    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>
    						
    Observe que el código HTML señala al directorio en el que se encuentra el archivo y no al propio archivo.
El directorio del archivo deseado aparece en una vista de archivos al estilo del Explorador de Windows. Cuando el usuario hace clic en el icono en la vista, el archivo se ejecuta como si el usuario hubiera hecho clic en el icono de archivo en una ventana tradicional del Explorador de Windows.

Vinculación de descarga de código de Internet

En esta alternativa complicada, la página Web omite el proceso de descarga de archivos ordinario utilizando la descarga de código de Internet. La descarga de código de Internet es la característica de Internet Explorer que permite a las páginas Web descargar automáticamente controles ActiveX y otros objetos de código nativo. Los archivos que se obtienen a través de la descarga de código de Internet atraviesan el marco de seguridad de ActiveX, que se puede controlar mediante opciones de seguridad.
  1. Si el "archivo ejecutable" no es un PE que pueda firmarse (.exe) como un archivo .bat, se debe empaquetar en un archivo .cab con un archivo INF que tenga el formato siguiente.
    [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
    						
    Reemplace la instancia de File.zzz anterior con el archivo ejecutable que se va a ejecutar.

    Para obtener más información acerca de cómo empaquetar el archivo .cab, visite el siguiente sitio web de Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/workshop/delivery/download/tutorials/button_download.asp
  2. Asegúrese de que el archivo .exe (o .cab) está firmado mediante código. Si no el archivo .exe no se ha firmado, esto se puede hacer con las herramientas de firma de código CryptoAPI Authenticode. Consulte la documentación de CryptoAPI en el kit de desarrollo de software de la plataforma de MSDN (MSDN Platform SDK), en la sección de seguridad, para obtener más información.

    Por razones de seguridad, el proceso de firma del código para una organización se controla mejor mediante una entidad central que sea de confianza en toda ella. La firma de código requiere la compra de certificados costosos a proveedores externos como VeriSign o el mantenimiento de un servidor de certificados como Microsoft Certificate Server en la intranet.
  3. Utilice esta página de ejemplo como guía para el vínculo y script necesarios para iniciar el código firmado sin mostrar ningún cuadro de diálogo:
    <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>
    					
Los productos de terceros que se analizan en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, con respecto al rendimiento o la fiabilidad de estos productos.

Propiedades

Id. de artículo: 232077 - Última revisión: miércoles, 13 de junio de 2007 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Service Pack 1 de Microsoft Internet Explorer 4.01
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
Palabras clave: 
kbinfo kbnavigation kbsecurity kbdhtml KB232077

Enviar comentarios

 

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