HTA – file HTML eseguibili standalone in locale

Un file .hta ( Microsoft HTML Application ) é un applicazione per Microsoft Windows, in pratica žé un file HTML, ma semplicemente modificando la sua estensione in .hta diventa un eseguibile vero e proprio.

Non richiede quindi di essere lanciato da un browser ma viene eseguito direttamente da windows (attraverso le liberire del proprio browser, per cui le peculiarità, limitazioni, compatibilità sono le stesse del browser (explorer/edge/spartan/webkit) a secondo della versione di windows) del sistema.

Il file  …\windows\system32\mshta.exe é il file deputato alla loro esecuzione, ovvero é richiesto e necessario se vogliamo che un file hta venga correttamente riconosciuto ed eseguito.

Una caratteristica estremamente importante é che tali applicazioni non sono soggette ai canoni di sicurezza del medesimo codice quando gira all’interno di un browser, bensì sono considerate ‘fully trusted’ ovvero hanno pieno potere di azione sul sistema, sino al punto, per fare un esempio, di andare a modificare il registro di sistema dell’SO stesso.

I file hta non sono riconosciuti dai sistemi Linux, ma é possibile ottenere un risultato simile attraverso altre vie.

Un’altra particolarità risiede nel poter riconoscere un tag creato specificatamente per hta, ovvero <hta:application…>, attraverso questo tag, o meglio attraverso i suoi attributi, possiamo definire alcune caratteristiche di contorno, come la dimensione della finestra dell’applicazione e così via. Il tag va posto nell’head del documento.

Qui la documentazione ufficiale relativa a tali attributi.
Qui un’intera sezione dedicata all’hta, molto esasustiva.

Ecco un esempio:

<HTA:APPLICATION
ICON=”miaIcona.ico”
APPLICATIONNAME=”miaApplicazione”
BORDER=”thin”
/>

 

Domande:

  • Come é possibile modificare il registro di sistema o eseguire altre operazioni normalmente non consentite?
    Una parziale risposta é che l’applicazione hta ha accesso a tutto il sistema come se fosse un server per cui può ‘navigare’ nel file system, inoltre ha il permesso di leggere, modificare, rinominare, lanciare file presenti o crearne di nuovi.
  • Quali opzioni sono presenti per linux per ottenere un risultato simile?
  • Non riesco ad eseguire SVG all’interno di un HTA, errore mio o limiti del formato?