Peligros de PHP (era Re: Ejecucion de comando shell)

mramirez en iciuchile.cl mramirez en iciuchile.cl
Vie Jun 11 16:16:18 CLT 2004


> <?php
> 
> $comando="ls -l /";
> exec ($comando,$res);
> 
> for ($i=0; $i<count($res); $i++) 
> 	echo $res[$i]."<br>\n";
> 
> ?>
> 

Que extraño, hice un script basico con tu codigo y funciona OK. Lo reemplace
con
mi comando y nada (exactamente lo mismo). La diferencia es que mi comando bash
necesita 3 parametros como datos de entrada, por lo tanto hago:

<?php
$param1 = "valor1";
$param2 = "valor2";
$param3 = "valor3";
$funcion = "/home/user/public_html/Dir/comando.sh $param1 $param2 $param3";
exec ($funcion,$res);

for ($i=0; $i<count($res); $i++)
        echo $res[$i]."<br>\n";
?>

Por otro lado, el comando.sh hace una conexion a un equipo remoto para ejecutar
otro comando:

ssh user en IP ./comando_remoto $param1 $param2 $param3

Donde los parametros de este script remoto son los capturados via web con PHP y
entregados via SSH por el comando.sh inicial. 

Si uno ejecuta desde la linea de comandos funciona todo ok:

> ./comando.sh $param1 $param2 $param3

La idea es hacer eso via web, donde $param1,$param2,$param3 se capturen desde
una pagina web y desde ahi (via PHP) se invoque el comando_remoto, via
comando.sh.

La secuencia es Formulario web --> comando.sh(param1, param2, param3) -SSH->
comando_remoto(param1, param2, param3)

El comando_remoto devuelve un archivo de salida al servidor web local, el cual
no es escrito

No habra problema de permisos? Quien es el usuario que ejecuta el script con
los
datos capturados desde el formulario web (PHP)? Sera que el exe, passsthru, y
otros no entienden que es comando y que es parametro de entrada? No se,
agradecere ayuda.

Salu2 y grax

Apestao!!




Más información sobre la lista de distribución PHP