Altro HTML Esecuzione file locale

Se il file HTML viene aperto da browser come Chrome o Firefox sarà comunque eseguito in sandbox quindi non puoi scrivere o eseguire file arbitrari su disco a meno di non avere un exploit funzionante, a prescindere che il file sia locale o remoto.

Quello che puoi fare è un file HTA locale se stiamo parlando di sistemi Windows. Questo tipo di applicazioni html contiene html e js (dialetto Microsoft) viene eseguito da una libreria di sistema senza restrizioni di sandbox, per tanto puoi leggere, scrivere ed eseguire file con gli stessi privilegi dell'utente. Per un feel più moderno puoi usare Electron Framework che usa l'engine chromium e però produce file EXE contentente l'intera web application nodejs e html (dovendo essere self-contained ed avere l'engine v8, il risultato finale occupa qualche centinaio di MB al contrario delle altre soluzioni).

Ho dato per scontato che nell'HTML ci sia codice JavaScript: di per sè html non può fare operazioni di questo tipo in nessun contesto.
 
Se il file HTML viene aperto da browser come Chrome o Firefox sarà comunque eseguito in sandbox quindi non puoi scrivere o eseguire file arbitrari su disco a meno di non avere un exploit funzionante, a prescindere che il file sia locale o remoto.

Quello che puoi fare è un file HTA locale se stiamo parlando di sistemi Windows. Questo tipo di applicazioni html contiene html e js (dialetto Microsoft) viene eseguito da una libreria di sistema senza restrizioni di sandbox, per tanto puoi leggere, scrivere ed eseguire file con gli stessi privilegi dell'utente. Per un feel più moderno puoi usare Electron Framework che usa l'engine chromium e però produce file EXE contentente l'intera web application nodejs e html (dovendo essere self-contained ed avere l'engine v8, il risultato finale occupa qualche centinaio di MB al contrario delle altre soluzioni).

Ho dato per scontato che nell'HTML ci sia codice JavaScript: di per sè html non può fare operazioni di questo tipo in nessun contesto.
Dovrei eseguire un software portable con locazione in c : /file.exe , dubito che sia possibile a questo punto non so cosa sia un file HTA,
potresti farmi un esempio di codice o in caso un link di riferimento dove poter analizzare le possibili opzioni di esecuzione del file.
 
Con HTA è semplicissimo, ho usato vbscript ma puoi usare anche jscript formato microsoft da cui si ha accesso ad un analoga API per il filesystem.

Ecco un esempio di codice per aprire la calcolatrice al click di un bottone. Crea un file con il tuo editor o anche col blocco note e salvalo con estensione .HTA si apre semplicemente con doppio click e ha una strana e vecchia icona (fa tanto Windows XP). Ti basta cambiare calc con il tuo file.exe.

HTML:
<html>
<head>
<HTA:APPLICATION ID="CalcExample" BORDER="thin" BORDERSTYLE="complex" maximizeButton="yes" minimizeButton="yes" />
<script type="text/vbscript">
  Sub StartCalc()
    Set objShell = CreateObject("Wscript.Shell")
    objShell.Run "C:\Windows\system32\calc.exe"
  End Sub
</script>
<title>HTA Test Program</title>
</head>
<body>
<table width="100%">
    <tr>
        <td>
            <H1>Hello World from HTA</H1>
            <input type="Button" onClick="StartCalc()" value="Start calc.exe" />
        </td>
    </tr>
</table>
</body>
</html>


1680618846921.png


Tieni conto che il motore che sta sotto è internet explorer. Se vuoi qualcosa di più moderno e serio, come ti dicevo resta Electron Framework, se no ti tocca programmare qualcosa ad hoc, quale linguaggio dipende da che altro devi fare oltre aprire un file e quando ciò deve avvenire.
 
  • Mi piace
Reazioni: Cristian_
Con HTA è semplicissimo, ho usato vbscript ma puoi usare anche jscript formato microsoft da cui si ha accesso ad un analoga API per il filesystem.

Ecco un esempio di codice per aprire la calcolatrice al click di un bottone. Crea un file con il tuo editor o anche col blocco note e salvalo con estensione .HTA si apre semplicemente con doppio click e ha una strana e vecchia icona (fa tanto Windows XP). Ti basta cambiare calc con il tuo file.exe.

HTML:
<html>
<head>
<HTA:APPLICATION ID="CalcExample" BORDER="thin" BORDERSTYLE="complex" maximizeButton="yes" minimizeButton="yes" />
<script type="text/vbscript">
  Sub StartCalc()
    Set objShell = CreateObject("Wscript.Shell")
    objShell.Run "C:\Windows\system32\calc.exe"
  End Sub
</script>
<title>HTA Test Program</title>
</head>
<body>
<table width="100%">
    <tr>
        <td>
            <H1>Hello World from HTA</H1>
            <input type="Button" onClick="StartCalc()" value="Start calc.exe" />
        </td>
    </tr>
</table>
</body>
</html>


Visualizza allegato 69327

Tieni conto che il motore che sta sotto è internet explorer. Se vuoi qualcosa di più moderno e serio, come ti dicevo resta Electron Framework, se no ti tocca programmare qualcosa ad hoc, quale linguaggio dipende da che altro devi fare oltre aprire un file e quando ciò deve avvenire.
Dentro un HTML non e possibile implementarlo?
 
Dentro un HTML non e possibile implementarlo?

Rileggi questo messaggio:

Se il file HTML viene aperto da browser come Chrome o Firefox sarà comunque eseguito in sandbox quindi non puoi scrivere o eseguire file arbitrari su disco a meno di non avere un exploit funzionante, a prescindere che il file sia locale o remoto.

Quello che puoi fare è un file HTA locale se stiamo parlando di sistemi Windows. Questo tipo di applicazioni html contiene html e js (dialetto Microsoft) viene eseguito da una libreria di sistema senza restrizioni di sandbox, per tanto puoi leggere, scrivere ed eseguire file con gli stessi privilegi dell'utente. Per un feel più moderno puoi usare Electron Framework che usa l'engine chromium e però produce file EXE contentente l'intera web application nodejs e html (dovendo essere self-contained ed avere l'engine v8, il risultato finale occupa qualche centinaio di MB al contrario delle altre soluzioni).

Ho dato per scontato che nell'HTML ci sia codice JavaScript: di per sè html non può fare operazioni di questo tipo in nessun contesto.

Se quel codice lo metti in un file .html viene aperto dal browser predefinito e quindi bloccato dalle feature di sicurezza che non ti fanno leggere, scrivere o eseguire file su disco. Se lo chiami .hta funziona perché è il visualizzatore di windows ad aprirlo, che non ha le stesse restrizioni, a prescindere da quali browser hai installato sul pc.
 
  • Mi piace
Reazioni: Cristian_
Rileggi questo messaggio:



Se quel codice lo metti in un file .html viene aperto dal browser predefinito e quindi bloccato dalle feature di sicurezza che non ti fanno leggere, scrivere o eseguire file su disco. Se lo chiami .hta funziona perché è il visualizzatore di windows ad aprirlo, che non ha le stesse restrizioni, a prescindere da quali browser hai installato sul pc.
non e molto semplice allora dare un istruzione al codice HTML per eseguire un file locale, anzi lo vedo improbabile.