Seguridad de DBC y DBF

25/08/2004 - 17:52 por smonjaraz | Informe spam
Estoy armando un proyecto con seguridad de DBC's y DBF's
el cual tiene codigo de desencadenadores y procedimientos
almacenados en la DBC.

Utilizo "dbc_BeforeOpenTable" para comprobar si se puede
o no abrir la Base de Datos, esto lo estoy haciendo para
que solo se pueda abrir la Base de Datos desde el sistema
o proyecto compilado EXE que la llama y no desde el VFP,
OBDC, OLE DB etc.. etc.. ya que estos procedimientos
mandaria un error, impidiendo tal accion.

Tengo en mi PC la version 3, 6, 7 y 9b de VFP, las tengo
por varias razones... ahora bien, esto lo estoy haciendo
en VFP 7 y funciona bien, no deja abrir por ningun lado
la DBC, mandando el error, pero por ejemplo, si abro una
tabla con VFP 3.0 manda un error, que dice asi:
////
OPEN TABLE
archivo.DBC The database for table archivo.DBF could not
be opened. Would you like to try to locate the owning
database or delete the link (and free the table).

LOCATE DELETE CANCEL
////

Pues bien, si le digo delete y la tabla se pudo abrir en
modo exclusivo, quita la liga que hay entre la tabla y la
base de datos, dejando la tabla como libre.

¿Como puedo hacer para proteger dichas tablas, sin que se
pueda quitar la liga. es para seguridad del sistema?.

si alguien me puede ayudar...

de antemano muchas gracias.

atte.
Samuel Monjaraz Vázquez
México DF
 

Leer las respuestas

#1 Alex Feldstein
26/08/2004 - 00:11 | Informe spam
On Wed, 25 Aug 2004 08:52:54 -0700, ""
wrote:

Estoy armando un proyecto con seguridad de DBC's y DBF's
el cual tiene codigo de desencadenadores y procedimientos
almacenados en la DBC.



Lamentablemente estas remando cuesta arriba. No existe seguridad en
DBC/DBF. Lo mas que puedes lograr es hacerlo un poco mas difícil a un
atacante sin experiencia.



Utilizo "dbc_BeforeOpenTable" para comprobar si se puede
o no abrir la Base de Datos, esto lo estoy haciendo para
que solo se pueda abrir la Base de Datos desde el sistema
o proyecto compilado EXE que la llama y no desde el VFP,
OBDC, OLE DB etc.. etc.. ya que estos procedimientos
mandaria un error, impidiendo tal accion.

Tengo en mi PC la version 3, 6, 7 y 9b de VFP, las tengo
por varias razones... ahora bien, esto lo estoy haciendo
en VFP 7 y funciona bien, no deja abrir por ningun lado
la DBC



Es facil de abrir, quizas no de tu programa, pero si desde cualquier
programa externo, como Excel, un editor de texto, un HexEditor o hasta
FP2.x


mandando el error, pero por ejemplo, si abro una
tabla con VFP 3.0 manda un error, que dice asi:
////
OPEN TABLE
archivo.DBC The database for table archivo.DBF could not
be opened. Would you like to try to locate the owning
database or delete the link (and free the table).

LOCATE DELETE CANCEL
////

Pues bien, si le digo delete y la tabla se pudo abrir en
modo exclusivo, quita la liga que hay entre la tabla y la
base de datos, dejando la tabla como libre.




Eso es porque VFP3 no entiende el formato del DBC cuano le pones
funciones como "dbc_*"


¿Como puedo hacer para proteger dichas tablas, sin que se
pueda quitar la liga. es para seguridad del sistema?.



Como digo arriba, no puedes. Lo primero por supuesto es no usar VFP3.

Si quieres mas seguridad, debes migrar a SQL Server o similar.
Con DBC/DBF lo mas que puedes hacer es encriptar datos y depender del
SO, asumiendo Windows Server (2000/2003.XP) con un buen sistema de
administracion, ACL, NTFS, etc.



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(Address scrambled with ROT-13)

Preguntas similares