¿Hay alguna forma de cargar y ejecutar un archivo EXE en el lado del cliente, después de cargar una página web? [con script Java o HTML]

3
Momi 11 nov. 2009 a las 12:51

7 respuestas

La mejor respuesta

Hay (|| solía haber) varias interfaces JS para esto, que probablemente están bloqueadas con los navegadores modernos, por razones obvias de seguridad.

Entonces, sus clientes confían en usted e instalan extensiones [FF / IE / Safari / etc.] O ...

Sin embargo, en cuanto a la extensión de FF, vea mi respuesta en este hilo

En breve:

Lanzamiento externo de aplicaciones de acuerdo con esta publicación se puede hacer de la siguiente manera:

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
file.launch();

Para IE, puede intentar ejecutar esto

<script lang='vbscript'>
    set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "C:\program files\program\program.exe"
</script>
3
Community 23 may. 2017 a las 10:27

No, esto sería un agujero de seguridad. Las aplicaciones web solo se escriben usando HTML / Javascript y, a veces, otras tecnologías como Flash, que se consideran lo suficientemente seguras para ejecutarse en los navegadores. (Aunque a veces también tienen agujeros de seguridad).

0
Roger PateRoger Pate 11 nov. 2009 a las 09:57

Legalmente, no.


Si eres un hacker-cum-cracker:
Si. Hay un agujero de seguridad en las versiones anteriores de Flash Player (creo que menos de 9) que le permite hacer esto. Si eres lo suficientemente inteligente, puedes explotar eso y ejecutar cualquier código en la máquina de los usuarios (al menos en Windows / Mac). Consulte este enlace para más detalles.

1
Amarghosh 11 nov. 2009 a las 13:24

Esto no debería hacerse, si un usuario quiere ejecutar un exe desde su sitio, lo descargará y luego lo ejecutará, sin embargo, si el sitio está tratando de ejecutar automáticamente un exe cuando alguien visita el sitio, eso sería una gran vulnerabilidad de seguridad.

¿Qué hace el exe? Esto puede hacerse con JavaScript o incluso con el lado del servidor. Otras opciones, si realmente desea que los clientes ejecuten ejecutables, serían mirar algo así como hacer clic en .net una vez que se implementa, donde puede publicar un ejecutable en su sitio y los clientes pueden descargarlo e instalarlo desde el sitio, esto viene con las ventajas de cosas como actualizaciones automáticas.

1
Gavin 11 nov. 2009 a las 10:16

Respuesta corta: sí, se puede hacer. Respuesta larga: no, no se puede hacer y es una práctica terriblemente mala.

Déjame explicarte.

La seguridad es el factor decisivo, puede escribir casi cualquier cosa en JavaScript, incluido el código para iniciar el ejecutable, pero la mayoría de los navegadores no le permitirán iniciar un exe, porque obviamente es un gran riesgo de seguridad.

Mi sugerencia, haga las cosas de una manera convencional, si necesita un mejor soporte del lado del cliente, use un applet o incluso active-x (pero evitaría esto).

1
JL. 11 nov. 2009 a las 09:58

En MSIE, es posible usar ActiveX para eso, pero el usuario debe permitir que su control ActiveX se instale / ejecute. Si está buscando un entorno bajo su control (por ejemplo, su empresa), esta podría ser una forma. He trabajado con una característica legítima de "instalación remota" como esta, hace mucho tiempo; hoy en día, es más fácil pedirle al usuario que descargue y ejecute el instalador (no depende del navegador, y los usuarios han aprendido cómo hacerlo (¡jadeo!)).

Si quiere decir "con JS / HTML desde el navegador", eso se llama "ejecución arbitraria de código remoto" y es un agujero de seguridad bastante serio. Entonces, afortunadamente, eso no es posible (¿le gustaría que algún sitio web ejecute format c: en su computadora? Eso creo).

2
Piskvor left the building 11 nov. 2009 a las 10:12

Algo a tener en cuenta es Java Web Start.

Obviamente, esta es una tecnología exclusiva de Java, pero esencialmente le permite iniciar una aplicación local desde una página web y hacerlo de una manera algo más segura que iniciar un .EXE arbitrario.

Un beneficio adicional es que le permite implementar actualizaciones de aplicaciones para todos los usuarios simplemente actualizando la copia del repositorio en su sitio: las actualizaciones se extraen automáticamente.

2
Carl Smotricz 11 nov. 2009 a las 10:09