FoxPro/Visual FoxPro - A ver los cráneos....

 
Vista:

A ver los cráneos....

Publicado por upliftmofopartyplan (265 intervenciones) el 02/01/2003 16:42:49
Hola todos!!, tanto tiempo...
quisiera me ayuden con un pequeño problema que tengo.
lo que estoy tratando de hacer es ponerle seguridad a las BD, y realmente no se me ocurren muchas formas.
lo ideal sería que no se pueda acceder a las tablas si no es a través del sistema que diseñé. En esta página, en la sección código fuente hay una rutina que supuestamente protege la tabla cambiandole el primer byte, pero hice algunas pruebas y a mi criterio no funciona.
si alguien tiene alguna sugerencia ó alguna vez hizo algo parecido, les agradecería su aporte.
por otro lado encontré una solución a medias para este tema, y es encriptar los datos antes de guardarlos en la tabla, con esta rutina:

uaxcad=""
for I=1 to len(cadena)
subcad=ASC(SUBSTR(cadena,I,1))
if subcad=<128 then
subcad=INT(((subcad*3)+58)/2)-20
else
subcad=INT(((subcad*2)-58)/3)+20
endif
subcad=chr(subcad)
auxcad=auxcad+subcad
endfor

Esto funciona OK, pero el problema que tengo es matemático, ya que no consigo hacer el desencriptador, por eso apelo a su sabiduría,
ya que sé que en este foro hay gente que razona mucho. Si a alguien se le ocurre algo, o tiene algo hecho, se agradece su aporte.
El tema es que la encriptación sea mas o menos complicada, de otra forma no tendría sentido.
Gracias a todos!!
Uplift.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:A ver los cráneos....

Publicado por Roman Suazo (2723 intervenciones) el 02/01/2003 17:13:06
A mi criterio no es buena idea encriptar una BD, ya que es facil de romper esa seguridad. Por ejemplo: digamos que abres el programa con su db correspondiente, antes de cerrar el programa receteas la Pc.
En ese momento la tabla ya esta desencriptada y cualquiera puede
abrirlas en otro vfp. Si lo que queres es proteccion solo a traves de la
app. entonces ahi si es buena idea encriptar las passwords o usar xml
(hay diferentes rutinas para hacer esto en diferentes foros [universalthread]).
Para estar seguro que nadie te pueda abrir las BD, creo que solo se
puede hacer con vfp 7, el cual proporciona como caracteristica un evento
nuevo en las dbc. A traves de este evento podrias cerrar la Bd segun
ciertos valores o condiciones.

Creo que todo se reduce al tipo de usuarios que van usar la app (entre
menos sofisticados mas facil es el asunto) o tal vez podrias poner proteccion con el sistema operativo (si usas nt o w2k, etc)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:A ver los cráneos....

Publicado por TITO (356 intervenciones) el 06/01/2003 04:27:32
Segun lo que relatas, no quieres que nadie se meta por la ventana a ver los datos. No se si en la varsion 7 u 8 de VFP esto esta resuelto, pero lo que se me ocurre en principio es que emplees una base de datos en que los controles de seguridad estan resueltos, demas de los perfiles, tiempos de uso, etc, etc (como puede ser SQL server o MYSQL). El uso de una base de datos profesional brinda todas esas ventajas. Lo que tendrias que hacer frente a esto es exportar los datos y listo. Lo demas son parches momentaneos que con un software especializado desncriptador y un poco de ingenio igual se podria accesar a los datos
Que te vaya bien.
TITO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:A ver los cráneos....

Publicado por Hector (Otro TITO) (17 intervenciones) el 28/01/2003 16:18:37
te tengo una pequeña solucion, hay te va:

handle = FOPEN("TblClient.dbf",2)
=FSEEK(handle,0,0)
=FWRITE(handle,"X",1)
=FCLOSE(handle)

La tabla se llama TblClient.dbf, la idea es cambiar el primer caracter del archivo, que originalmente es un 0 (cero) y lo cambiamos por una letra X, utilizandolo como si fuese un archivo de texto, si quieres ver el efecto velo en el editor de MS-DOS.

Claro que esto es para bloquear la tabla pero para desbloquear usa esto:

handle = FOPEN("TblClient.dbf",2)
=FSEEK(handle,0,0)
=FWRITE(handle,"0",1)
=FCLOSE(handle)

Bueno a mi me sirve bastante en el trabajo, en especial en los projectos chicos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar