Aplicación HTML
- Este artículo se refiere a la implementación de HTA patentada por Microsoft. Para obtener información sobre el manifiesto de caché de HTML5, también denominado aplicaciones HTML sin conexión, consulte el manifiesto de caché en HTML5.
Aplicación HTML | ||
---|---|---|
Desarrollador | ||
Microsoft | ||
http://msdn.microsoft.com/en-us/library/ms536471(VS.85).aspx | ||
Información general | ||
Extensión de archivo | hta | |
Tipo de MIME | application/hta | |
Extendido de | HyperText Markup Language | |
Formato abierto | ? | |
Una aplicación HTML (HTA) es un programa de Microsoft Windows cuyo código fuente consta de HTML, HTML dinámico y uno o más lenguajes de secuencias de comandos compatibles con Internet Explorer, como VBScript o JScript. El HTML se usa para generar la interfaz de usuario y el lenguaje de programación se usa para la lógica del programa. Una HTA se ejecuta sin las limitaciones del modelo de seguridad del navegador de Internet; de hecho, se ejecuta como una aplicación "de plena confianza".
La extensión de archivo habitual de una HTA es .hta
.
La capacidad de ejecutar HTA se introdujo en Microsoft Windows en 1999, junto con el lanzamiento de Microsoft Internet Explorer 5.[1] El 9 de diciembre de 2003 se patentó esta tecnología.[2]
Usos
[editar]Las HTA brindan al desarrollador las características de HTML junto con las ventajas de los lenguajes de secuencias de comandos. Son populares entre los administradores de sistemas de Microsoft que los utilizan para la administración de sistemas, desde prototipos hasta aplicaciones "a gran escala", especialmente donde la flexibilidad y la velocidad de desarrollo son críticas.[3]
Entorno
[editar]Ejecución
[editar]Una HTA se ejecuta utilizando el programa mshta.exe
o, alternativamente, haciendo doble clic en el archivo. Este programa normalmente se instala junto con Internet Explorer. mshta.exe
ejecuta la HTA creando instancias del motor de renderizado de Internet Explorer (mshtml) así como de cualquier motor de lenguaje requerido (como vbscript.dll).
Una HTA se trata como cualquier archivo ejecutable con extensión .exe
. Cuando se ejecuta a través de mshta.exe (o si se hace doble clic en el icono del archivo), se ejecuta inmediatamente. Cuando se ejecuta de forma remota a través del navegador, se pregunta al usuario una vez, antes de descargar la HTA, si desea guardar o ejecutar la aplicación; si se guarda, simplemente se puede ejecutar bajo demanda después de eso.[3]
De forma predeterminada, las HTA se representan según "contenido en modo estándar en el modo Estándar IE7 y contenido en modo peculiar en modo IE5 (Quirks)", pero esto se puede modificar utilizando encabezados X-UA-Compatible
con X-UA-Compatible
.[3]
El motor HTA (mshta.exe) depende de Internet Explorer. A partir de Windows Vista, un usuario puede eliminar Internet Explorer de Windows, lo que hará que el motor HTA deje de funcionar.
Las HTA son totalmente compatibles con Internet Explorer desde las versiones 5 a 9. Otras versiones, como la 10 y la 11, aún admiten HTA, aunque con algunas funciones menores desactivadas.
Consideraciones de Seguridad
[editar]Cuando se ejecuta un archivo HTML normal, la ejecución se limita al modelo de seguridad del navegador web. Esto significa que se limita a comunicarse con el servidor, manipular el modelo de objetos de la página (generalmente para validar formularios y/o crear efectos visuales interesantes) y leer o escribir cookies.
Por otro lado, una HTA se ejecuta como una aplicación de plena confianza y, por lo tanto, tiene más privilegios que un archivo HTML normal; por ejemplo, una HTA puede crear, editar y eliminar archivos y entradas de registro. Aunque las HTA se ejecutan en este entorno de "confianza", la consulta de Active Directory puede estar sujeta a la lógica de la zona de Internet Explorer y los mensajes de error asociados.
Desarrollo
[editar]Para personalizar la apariencia de una HTA, se introdujo una etiqueta opcional hta:application
en la sección HEAD
. Esta etiqueta expone un conjunto de atributos que permiten el control del estilo del borde, el icono del programa, etc., y proporcionan información como el argumento (línea de comando) utilizado para iniciar la HTA.[4] De lo contrario, una HTA tiene el mismo formato que una página HTML.
Se puede utilizar cualquier editor de texto para crear una ETS. Los editores con características especiales para desarrollar aplicaciones HTML pueden obtenerse de Microsoft[5] o de fuentes de terceros.[6]
Un archivo HTML existente (con extensión de archivo .htm
o .html
, por ejemplo) se puede cambiar a una HTA simplemente cambiando la extensión a .hta
.
Vulnerabilidades
[editar]Se han utilizado HTA para distribuir malware, entre ellos el ransomware Spora.[7][8]
Ejemplo
[editar]Este es un ejemplo de Hola mundo como una aplicación HTML:
<HTML>
<HEAD>
<HTA:APPLICATION ID="HelloExample"
BORDER="thick"
BORDERSTYLE="complex"/>
<TITLE>HTA - Hello World</TITLE>
</HEAD>
<BODY>
<H2>HTA - Hello World</H2>
</BODY>
</HTML>
Véase también
[editar]- Windows Script Host
- Chromium Embedded Framework
- Electron (marco de software)
- Firefox OS
- Aplicaciones de navegador XAML (XBAP)
- XUL y XULRunner: un lenguaje y entorno para aplicaciones multiplataforma de Mozilla que se asemeja al mecanismo de las aplicaciones HTML.
- Apache Córdova
Referencias
[editar]- ↑ Article ID:200874 in Microsoft Support, in Microsoft Support Knowledge Base
- ↑ Microsoft wins HTML application patent
- ↑ a b c «Introduction to HTML Applications (HTAs).». Microsft MSDN. May 2011. Consultado el 24 de junio de 2016.
- ↑ HTA:APPLICATION Object, in MSDN Library, the complete specification of the tag
hta:application
- ↑ HTA Helpomatic
- ↑ HTAEdit, an editor for HTAs with a built-in debugger
- ↑ «Spora Ransomware Dropper Uses HTA to Infect System». VMRay (en inglés estadounidense). 17 de enero de 2017. Consultado el 22 de diciembre de 2018.
- ↑ «8 Scariest Ransomware Viruses» (en inglés estadounidense). Consultado el 22 de diciembre de 2018.
Enlaces externos
[editar]- Referencia de componentes HTML (HTC) en MSDN . Un HTC encapsula una funcionalidad o un comportamiento específicos dentro de las HTA.
- The Script Center, The Script Center, hogar de Hey, Scripting Guy! Blog
- Aprenda sobre secuencias de comandos para aplicaciones HTML (HTA), un sitio de tutoriales para aprender sobre HTA