Página 1 de 1

Ejecutar comandos internos del SO con Javascript

NotaPublicado: 2006-05-26 14:14 @635
por andydavid
:?: :?: :? Compañeros me pregunto si en JavaScript existe alguna función similar a system de Perl que me permita ejecutar comandos en el sistema operativo del cliente, por ejemplo, crear una carpeta en el escritorio o ejecutar la calculadora.

NotaPublicado: 2006-05-26 19:49 @867
por kidd
Hola:

Por motivos de seguridad esto no se permite. Normalmente se necesitan hacer exploits de hoyos de seguridad del navegador para lograr esto, sin embargo, está prohibido.

Saludos

NotaPublicado: 2006-05-27 03:53 @203
por explorer
Se podría hacer con ActiveX, pero a) sólo funciona en windows y con el Internet Explorer, y b) esta tecnología a dado tantos problemas de seguridad que la propia Micro$oft se ha planteado quitarla definitivamente.

Se puede hacer de la siguiente manera. Como no se puede arrancar un ejecutable desde JavaScript, se puede al menos, tener un ejecutable ya instalado en el ordenador del cliente, que esté arrancado y escuchando en un determinado puerto (puede estar instalado como servicio de windows). Lo más normal ho en día es tener un Apache o un Tomcat.

Desde JavaScript, y por orden del cliente, para 'arrancar' el programa, realmente lo que estaríamos haciendo es una petición http al programa que está escuchando. Por ejemplo, el usuario puede pulsar en la página html un enlace de este tipo: http://127.0.0.1:8086/?cmd=dir&arg1=camino.

De esta forma, el programa que está en el propio ordenador del cliente (127.0.0.1), está escuchando por el puerto 8086 y recibe los argumentos que debe ejecutar.

Naturalmente, la seguridad deberá ser máxima:
1.- el programa que recibe la llamada DEBE comprobar que el comando a ejecutar está en su lista de comandos permitidos.
2.- los argumentos están dentro de los rangos de valores permitidos.

Esta es la solución que yo he visto más frecuentemente para poder interactuar una máquina desde una página web.