Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ultimo recurso (seguridad) (https://www.clubdelphi.com/foros/showthread.php?t=11938)

Toni 30-06-2004 10:53:51

Ultimo recurso (seguridad)
 
Hola a todos,

Hace bastante tiempo que estoy trabajando en un proyecto personal, se trata de un sistema compuesto por varias aplicaciones que trabajan sobre una misma base de datos. Todo esto esta desarrollado en IB6.0 + C++ Builder 5, IBX, en un modelo de programación de 3 capas mediante Midas.

Ahora que ya tengo el proyecto bastante avanzado lo tengo que presentar en una empresa y estoy realizando una version reducida de demo.

Entonce me surge el siguiente problema:

He estado consultado en el foro los temas relativos a la seguridad de interbase y he podido ver que no se puede proteger el acceso a la base de datos si se tiene acceso fisico a ella. Con lo cual esto no me interesa, pues tengo gran parte de la aplicación metida en la bbdd.

Hace tiempo vi en algun sitio, que ahora no consigo recordar que se podia modificar algo de las tablas del sistema, que dejaba la bbdd inaccesible a sus metadatos (o algo similar). Como esto es para una demo algo asi ya me estaria bien.

Tengo muy claro que como esta planteado el servidor de base de datos interbase no contempla la seguridad a un nivel de acceso fisico a los datos, y que cualquier 'invento' no sera algo muy seguro, pero de todas formas busco algo para que informaticos profanos en IB6 no puedan acceder a parte de mi trabajo de 2 años.

No se si FB1.5 contempla algo nuevo al respecto, he probado mi aplicacion con FB1.5 y en un principio funciona correctamente.

Cualquier utlimo recurso que me podais dar sera bienvenido, gracias.

Saludos,

ACK 30-06-2004 11:44:53

Hola Toni,

En la seccion de trucos/interbase, hay un truco que te explica como ocultar el código de los triggers y de los stored procedures.

Aquí te pongo el enlace : http://www.clubdelphi.com/vertruco.php?id=350

Saludos.

Toni 30-06-2004 16:12:47

Gracias ACK,

Esto es lo que mencionaba que habia visto hace tiempo y ahora no lograba recordar donde estaba.

Bueno si esto funciona de momento ya estoy mas tranquilo.

Saludos,

Toni 30-06-2004 19:26:40

Hola,

He probado el truco pero no me realiza el efecto deseado, mas bien no hace nada. Lo he probado en con una bbdd IB6.

Alguien lo ha probado?

Saludos,

jachguate 30-06-2004 19:40:44

Que significa que "no hace nada?"...

probablemente no has hecho commit después de la instrucción, pues por lo demás, es una sentencia update como cualquier otra, solo que tocando las tablas del diccionario de datos.

Hasta luego.

;)

Toni 01-07-2004 21:13:07

Hola jachguate,

Con la expresión de "no hace nada" vengo a decir que no realiza el resultado deseado, segun explica el truco.

Lo he provado a realizar desde el IBManager y el IBConsole, y si realizo el commit despues de hacer el update.

Por eso preguntaba si realmente ese truco funcionaba o no.

Saludos,

jachguate 01-07-2004 21:16:37

Creo que el problema está en cual crees vos que es el resultado deseado.

Si entras con ib-expert o cualquier otra utilidad que te permita extraer el código de los stored procedures, verás que no pueden extraerlo, y ese es el efecto deseado, ¿no?

Toni 01-07-2004 21:32:33

Exacto, ese es el efecto que no me hace.

rastafarey 06-07-2004 18:58:06

verifica
 
Crea un store procedure

Pon un codigo
Por ejemplo

//Cadigo ejemplo

Ejecuta la intruccion que dice el truco
y luego trata de ver el codigo de el store procedure
y te aseguro que que no veras lo que dice
//Cadigo ejemplo

Toni 06-07-2004 20:12:49

Lo he vuelto a probar y ciertamente funciona, no se que hice la otra vez que me confundio. Lo que si que sigue apareciendo es el codigo de los triggers.
No se si habra que hacer otro update sobre otra tabla del sistema.

Gracias,

rastafarey 06-07-2004 22:04:30

No tengo interbase a la mano
 
No tengo interbase a la mano pero abrete las tablas de sistema y verifica la tabla de los trigger y ves cual de los camppos guarda el codigo no compliado y ese es el que tiene que borrar.

De todos modos yo lo verificare y cuando me conecpte si no lo has resuelto te respondo

Toni 07-07-2004 13:16:03

Hola rastafarey,

He encontrado esto por el foro, lo he probado y parece que funciona ok.

UPDATE RDB$TRIGGERS
SET RDB$TRIGGER_SOURCE = NULL
WHERE Upper( f_blobleft(RDB$TRIGGER_SOURCE,5))<>'CHECK' and RDB$TRIGGER_SOURCE IS NOT NULL

lo que tambien ponia era que habia que borrar el historico:

Delete From IBE$VERSION_HISTORY

pero me da un error de tabla desconocida.

Por cierto, como puedo ver las tablas del sistema?

Saludos,

ACK 07-07-2004 14:06:43

Hola Toni,

En cualquier herramienta para administradores de Interbase/Firebird, existe una opción por cada base de datos, para poder ver las tablas del sistema.

Yo trabajo con IBManager, y dicha opción está en Información del registro de base de datos/Adicional/Mostrar tablas del sistema

En el marathon está en el menú View/Project Options/Show System Tables. Aunque esta herramienta ya no la utilizo ya que se ha quedado un poco anticuada.

Con esto, podrás ver las tablas. Dichas tablas comienzan,por lo menos en Interbase, con RDB$

Saludos.

Toni 07-07-2004 16:53:03

Gracias ACK,

Yo tambien utilizo IBManager.
Estuve buscando esta opción por todas partes y no la logre encontrar.

Saludos,

jachguate 08-07-2004 01:01:14

Podes averiguarlas "a pie" consultando el diccionario de datos:
Código SQL [-]
select rdb$relation_name
  from rdb$relations
 where rdb$system_flag = 1;

select rdb$field_name
  from rdb$relation_fields
 where rdb$relation_name = 'RDB$TRIGGERS';

Hasta luego.

;)

rastafarey 09-07-2004 18:48:53

Tablas de sistema
 
Yo uso ibexpert.

En la parte de registro de base datos hay una opcion para lo de ver tablas, indeces y disparadores del sistema. Si te fijas los dispararadores de sistemas estan protegidos de la forma que tu quieres proteger los tuyos


La franja horaria es GMT +2. Ahora son las 13:56:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi