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