>Demas está decir que Hilmar menciona "un pequeño riesgo"
>El riesgo no es pequeño. Es un agujero de seguridad enorme.
Bueno, pensé que un
exploit dependería de que el usuario tenga conocimientos sobre la estructura del programa. De todos modos, sí abre posibilidades preocupantes.
>Siempre debes validar lo que el usuario entre en ese tipo de expresiones. Nunca debes usar lo que el usuario entre sin filtrar y /o limitar.
Me parece que para una verificación rápida, bastaría con
type([expresión del usuario]) # "U". Lamentablemente, con eso no tendrá acceso a ninguna UDF - incluyendo algunas que, a lo mejor, querrás que utilice. Discriminar a qué funciones o métodos el usuario tendrá acceso, y a cuáles no, ya se hace mucho más difícil.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)