>El tema de la seguridad es algo que no me preocupa en este punto dado, puesto que conducir un vehículo es peligroso, pero es responsabilidad del conductor lo que haga con él..., no sé si me explico.Lamentablemente, como explica Jose Luis hoy en dia no es asi ni tan fácil.
Como comento en mi Blog
http://www.bloglines.com/blog/AlexFeldstein?id=52que apunta a un excelente artículo de Christof Wollenhaupt:
"
Security in FoxPro (protecting application and data)"
hoy en dia no se puede ignorar la seguridad. Esta debe ser parte del diseño de cualquier programa.
Aunque en tu caso uses el código solo para generar informes, es relativamente simple inyectar código que modifique (o borre) tablas.
Mira los ejemplos que da Christof sobre inyección.
Tu aceptas una expresion del usuario y no haces suficiente validación. Este usuario está enojado con el jefe y escribe un archivo de texto:
F:\CarpetaComunDeUsuariosDeLaRed\estasjoido.txt algo como:
"erase f:\data\tablaimportante.dbf + CRLF
erase F:\CarpetaComunDeUsuariosDeLaRed\estasjoido.txt"
Luego "inocentemente" entra en tu generador de reportes:
EXECSCRIPT(F:\CarpetaComunDeUsuariosDeLaRed\estasjoido.txt)
Suponiendo que no has verificado la expresión (i.e. insuficiente seguridad en el programa) y que el usuario tenga acceso a borrar tablas (insuficiente seguridad en la red)....
HTH