Article View: es.comp.os.linux.programacion
Article #5985Re: PHP APACHE y nobody
From: Jesús M. NAVARRO
Date: Wed, 20 Aug 2003 23:26
Date: Wed, 20 Aug 2003 23:26
137 lines
7626 bytes
7626 bytes
Hola, Alex: Alex Estevez escribi� en es.comp.os.linux.programacion: >> >> ...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 > Hombre, si es un programilla que tiene el mismo contexto de seguridad que el servidor web, lo puedes meter en la misma p�gina PHP. "Romper" el proceso tiene sentido cuando cambias el contexto de seguridad. [...] > >> 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 > _ En un ejemplo tan sencillo, probablemente pocas. Sin embargo, el contexto ya es distinto: Ya no existen otras variables HTTP_ que se puedan reescribir, por ejemplo y, como m�nimo, est�s revisando la cadena solicitada dos veces en distintos programas. > >> Si es tan poco elegante �por qu� permite cron ejecutar tareas cada >> minuto? > > No respondere sino es en presencia de mi abogado. > Por supuesto, para gustos, los colores. >> (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 :) > Ya: eso lo entiendo. Pero contra el vicio de pedir, est� la virtud de no dar. Hay que tratar de evitar que un usario sin conocimientos t�cnicos trate de imponer al t�cnico restricciones t�cnicas, porque no est� capacitado para ello. Lo que tiene que hacer es explicarte *el problema* (no la soluci�n deseada, ni mucho menos c�mo implementarla) y t� le dar�s la soluci�n y su implementaci�n. �A que no te han dicho algo del estilo de "necesito un programa que me lea la mente y haga lo que pienso"? Eso es porque ya han tomado una determinaci�n de tipo t�cnico y tratan de pas�rsela al t�cnico que la va a llevar a cabo. Adem�s, que como suele decirse, muchas veces los dioses para castigarnos nos conceden nuestros deseos: si se le hubiese ocurrido y t� lo hubieses implantado, antes o despu�s vendr�an a echarte la bronca porque en medio de una discusi�n acalorada el fulano pens� "matar�a a este cabez�n", y tu programa �Z�s! Desde el punto de vista del usuario *puede* ser mejor una confirmaci�n instant�nea de la operaci�n, no lo dudo, pero no es *necesaria* (piensa en las circunstancias en las que ser� necesaria la creaci�n de un nuevo usuario y ver�s c�mo de cinco a diez minutos es un intervalo razonable). No siendo *necesaria* y entra�ando riesgos innecesarios, se pueden valorar alternativas m�s adecuadas aunque se alejen del ideal pensado por el usuario. Por otra parte, si de lo �nico que se trata es de una p�gina web para crear en esa misma m�quina un usuario... 1/ Te he dado ya otras dos posibilidades: suExec de Apache o utilizar un programa compilado en lugar de un script, si lo vas a hacer t�. 2/ Buscar en Internet: seguro que encuentras m�s de un script/cgi para hacer lo que pretendes (tendr�as seguramente que cambiar el c�digo para la revisi�n de la base de datos, pero la parte de I/O ya la tendr�as cubierta). 3/ Instalar webmin, retirar todos los m�dulos salvo el de alta de usuarios y retocarlo (creo que todos los m�dulos est�n escritos en Perl). > 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. > Esta es otra: tienes dos bases de datos (/etc/passwd y la DB en MySQL) con informaci�n redundante. Eso huele a chamusquina y, si es cierto lo que digo (lo de que existir� informaci�n redundante) deber�a tratar de evitarse. > 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? > MySQL se maneja perfectamente desde script (mysqladmin es lo suficientemente potente y por lo dem�s, puesto que se tratar� de pasar una serie de sentencias SQL las puedes disponer en un fichero con el que alimentas al gestor). Respecto a las passwords, no se si te refieres a la del nuevo usuario que vas a crear, o a la de acceso a la propia base de datos. En el primer caso, el problema no es distinto al que tendr�as con cualquier otro programa: que un momento dado la contrase�a estar� en memoria: eso deber�a ser un riesgo menor en una m�quina controlada. Si es el segundo, deber�s tener cuidado con los permisos que asignas al fichero, para que no quede al alcance de ojos indiscretos. Usar�s adem�s un login a la base de datos con los m�nimos privilegios para realizar la tarea. Por cierto, lo que no podr�s es guardar en MySQL la contrase�a utilizando la funci�n crypt, porque es de una sola v�a. Para crear el usuario propondr�a, si es adecuado en tu entorno, utilizar siempre la misma password en el momento de alta de la cuenta (con lo que no habr�a que incluirla en la base de datos), o una distinta cada vez, creada aleatoriamente y que se borra de la base de datos inmediatamente despu�s de verificar que el alta ha sido llevada con �xito. -- SALUD, Jes�s *** jesus_navarro@undominio.net ***
Technical Details
Message-ID:
<qmcd11-ai8.ln1@mithrandir.intranet>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-05!sn-xit-08!supernews.com!newsfeed.online.be!fu-berlin.de!uni-berlin.de!212.97.189.72!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> <3F43B3B6.3070307@SPAMpuertatel.com>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 17:12:40 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-05!sn-xit-08!supernews.com!newsfeed.online.be!fu-berlin.de!uni-berlin.de!212.97.189.72!not-for-mail From: Jesús M. NAVARRO <jesus_navarro@undominio.net> Newsgroups: es.comp.os.linux.programacion Subject: Re: PHP APACHE y nobody Date: Thu, 21 Aug 2003 01:26:48 +0200 Lines: 137 Message-ID: <qmcd11-ai8.ln1@mithrandir.intranet> 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> <3F43B3B6.3070307@SPAMpuertatel.com> NNTP-Posting-Host: 212.97.189.72 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit X-Trace: news.uni-berlin.de 1061424757 4327050 212.97.189.72 (16 [173178]) X-Orig-Path: mithrandir.intranet!news User-Agent: KNode/0.7.2