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