Article View: es.comp.os.linux.programacion
Article #5979Re: PHP APACHE y nobody
From: Alex Estevez
Date: Wed, 20 Aug 2003 17:45
Date: Wed, 20 Aug 2003 17:45
89 lines
4501 bytes
4501 bytes
>>Proceso inseguro:
>>
>>usuario: pepe ; rm -rf * >/dev/null;
>>password: adios
>>
>>php lee los parametros y hace
>>
>><?
>> system ("programilla $_POST['usr'] $_POST['pwd']");
>>?>
>>
>>me petaron el sistema.
>>
>
>
> ...como nobody, que es quien est� ejecutando el servidor web, lo que ya no
> es lo mismo que este "pete" afectando a root.
Se suponia que programilla era un programa no shell con suid
>
>
>>en cambio si hago en el php
>>
>><?
>># se supone que escribiria el archivo correctamente:
>># hago un system echo para ir rapido.
>>
>> system ("echo \" $_POST['usr']:$_POST['pwd']\" >> archivo");
>>?>
>>
>
> �Y qui�n te dice que hagas una llamada a system? Precisamente de lo que se
> trata es de evitarla. Tratas en la medida de lo posible de sanear la
> entrada, abres un descriptor de fichero y escribes en �l.
>
No lo he dejado claro... en los comentarios d ese fragmento ya pongo que
no lo haria con un system... que era para ejemplificar rapido.
> Si en tu script utilizases la misma estrategia de saneamiento, s�; al no
> utilizarla, es m�s dif�cil (exponencialmente m�s dif�cil) cometer el error.
> De hecho, si se tratase de algo realmente cr�tico, la p�gina PHP y el
> script cron deber�an escribirlos diferentes desarrolladores, por supuesto,
> sin tener ning�n prejuicio sobre lo que el otro a hecho o ha podido hacer
> para sanear los datos: a todos los efectos, se puede esperar en la entrada
> de datos cualquier enga�o del maligno.
cuantas estrategias hay para sanear un nombre de usuario? no creo que
halla tantas. al fin y al cabo se limitara a permitir de A a Z, numeros y _
> Si es tan poco elegante �por qu� permite cron ejecutar tareas cada minuto?
No respondere sino es en presencia de mi abogado.
> (Adem�s �tantos usuarios vas a crear que no se puede esperar diez minutos,
> incluso una hora para obtener el resultado?).
No es tantos, sino en que tiempo. Se exige que la persona que cree uno o
mas usuarios vea el resultado al momento (un minuto es bastante
parecido). no en una hora o diez minutos... a mi me piden y yo hago :)
A modo de conclusion. he decidio realizar lo siguiente, para eliminar a
su vez problemas con los ficheros de accesos simultaneos y demas.
El php. metera los datos en una BBDD Mysql
el cron lanzara cada minuto un programa que leera las nuevas entradas a
esta BBDD y por cada uno creara el correspondiente usuario y demas
gestiones que tenga que hacer.
El uso de Mysql no es solo para evitar problemas con los accesos
simultaneos, es tambien para guardar en condiciones las cuentas creadas
y otros datos.
Ahora a su vez me surgen un par de dudas mas.
Que tal se maneja mysql con shellscripts? y que problemas me puede dar
que halla que introducir un password al mysql?
Si no lo sabeis no hace falta que respondais a esto, primero me peleare
un poco con ello.
Saludos
Alex Estevez
Technical Details
Message-ID:
<3F43B3B6.3070307@SPAMpuertatel.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.fjserv.net!feed.news.nacamar.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mailReferences:
<3F2F9BCD.8050601@SPAMpuertatel.com> <ltt401-3kc.ln1@mithrandir.intranet> <3F434C4E.1070705@SPAMpuertatel.com> <ju5c11-6dr.ln1@mithrandir.intranet> <3F438C50.40900@SPAMpuertatel.com> <o6mc11-1pe.ln1@mithrandir.intranet>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,9afc73b3e3571e08 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-08-20 10:47:44 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.icl.net!newsfeed.fjserv.net!feed.news.nacamar.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail From: Alex Estevez <alexNO@SPAMpuertatel.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: PHP APACHE y nobody Date: Wed, 20 Aug 2003 19:45:26 +0200 Organization: Puertatel Lines: 90 Message-ID: <3F43B3B6.3070307@SPAMpuertatel.com> References: <3F2F9BCD.8050601@SPAMpuertatel.com> <ltt401-3kc.ln1@mithrandir.intranet> <3F434C4E.1070705@SPAMpuertatel.com> <ju5c11-6dr.ln1@mithrandir.intranet> <3F438C50.40900@SPAMpuertatel.com> <o6mc11-1pe.ln1@mithrandir.intranet> NNTP-Posting-Host: 84.red-217-125-26.pooles.rima-tde.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Trace: nsnmpen2-gest.nuria.telefonica-data.net 1061401663 3398 217.125.26.84 (20 Aug 2003 17:47:43 GMT) X-Complaints-To: usenet@nsnmpen2-gest.nuria.telefonica-data.net NNTP-Posting-Date: Wed, 20 Aug 2003 17:47:43 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02 X-Accept-Language: en-us, en