Convertir una cadena a formato lista

Joaquin Jose del Cerro Murciano jjdelcerromurciano en yahoo.es
Mie Jun 15 09:28:27 CEST 2005


El Lunes, 13 de Junio de 2005 20:36, Jesus Cea escribió:
> Gumer Coronel Pérez wrote:
> > Una forma elegante:
> > eval('[2,3]') --> [2,3]
>
> Sólo aptas para entradas "controladas". Si la entrada es manipulable por
> un "enemigo", se puede montar un cristo de tres pares de narices.

En principio siempre he leido que la gente tiene bastante miedo a usar el eval 
por temas de la manipulacion de la entrada y la perdida de seguridad, y 
siempre me hago la misma pregunta, en esto

try:
  cad = "[1,2,3]"
  eval( cad,  { "__builtins__" : None }, {} )
except:
  ......

Que clase de destroza me pueden hacer ?
No es seguro ?
Asi a bote pronto se puede hacer muy poco manipulando la cadena de entrada. O 
es que se me escapa algo ?

(No me meto con el tema de rendimientos sobre las otras opciones que se 
plantean en este hilo. Intento averiguar si al emplear esta construccion 
estoy dejando agujeros de seguridad en un programa).

Un saludo
Joaquin

		
______________________________________________ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es




Más información sobre la lista de distribución Python-es