[pyar] Peligrosidad de un lambda

Daniel Moisset dmoisset en machinalis.com
Lun Oct 4 12:43:34 ART 2010


2010/10/4 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On Monday 04 October 2010 12:14:30 Claudio Freire wrote:
>>  El unico chiste es que no tiene que estar en un lugar
>>  donde te lleguen datos "extraños".
>>
>>  No, no sanear los datos antes de pasarselos, sino no pasarle datos que no
>>  sabes de adonde vienen. Les recomiendo leer el articulo de taint de Juanjo
>> en la revista ;-)
>>
>> No es eso exactamente lo que es eval(raw_input())?
>
> No. raw_input sabés *exactamente* de adonde viene. Viene de un tipo sentado en
> la terminal, logueado con esa cuenta.

En realidad, viene de sys.stdin, usualmente un file object asociado al
file descriptor 0.

O sea que si alguien hace un CGI que hace
   popen("programapiola.py "+escape(args))

La peude estar fregando interesantemente sin saberlo (a menos que la
documentacion de tu programa diga "este programa parece que plotea
funciones matematicas, pero en realidad permite ejecutar cualquier
cosas", en esa documentacion que nadie lee)

> Ahora bien, de que manera te proteje no permitir eval(raw_input()) si el tipo
> puede poner "python" (ya que está logueado) y escribir lo que se le cante?

En realidad hay muchos contextos donde podes llegar al stdin de un
proceso, sin necesariamente tener un permiso de shell

Saludos,
   D.



More information about the pyar mailing list