Ver Mensaje Individual
  #10  
Antiguo 31-10-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
La otra opción sería guardar ese usuario/clave en un fichero externo, cifrado. Lo lees y descifras al iniciar el programa y lo utilizas para conectar a la base de datos.
Pero eso es regresar al mismo problema: Tienes la clave en el codigo!


---

La solucion general (que esta enfocada a .NET) se delinea aqui:

https://msdn.microsoft.com/en-us/lib...=vs.80%29.aspx

Basicamente, de ser posible se usa "Autenticacion integrada" que es simplemente dejar que Windows se encargue del tema.

No se como es con Firebird + Delphi, ya que en los casos parecidos a este he usado BD empresariales (Sql Server, PostgreSQL, etc)

El API que se debe usar es este:

DPAPI
https://msdn.microsoft.com/en-us/library/ms995355.aspx

----

Ahora bien, hay 2 formas de enfrentar esto:

- Consideras que la BD es un "fichero local" y el asunto de la clave es irrelevante. La seguridad que se le aplica es la de "archivos y directorios" como todos los demas.

Este es el modelo sqlite. Y esto significa que acceso fisico a la BD asegura que se pueden acceder a los datos.

- Consideras el contenido de la BD sensible y hay que protegerlo de aqui:

a- Usas seguridad integrada. Creas un usuario de *windows* y ese es el que usas para acceder a la BD.

ESTA ES LA FORMA RECOMENDADA.

b- Incias con la clave "estandar". Generas (o solicitas) un usuario/clave *en el momento de la instalacion" y *guardas esto en el enclave de seguridad con DPAPI*. Usas el API para obtener la info desde alli.

Asi no te cargas el tema de la desencriptada. El problema es como "recuperar" la clave si algo pasa. Ese es otro lio!

En tal caso, debes guardar en un archivo la info, y que esta la guarden en algun lado. Pero no lo haces tu.

Asi es masomenos una de las formas como se hace en apps empresariales (aunque honestamente, la mayoria siguen el modelo 1!)
__________________
El malabarista.
Responder Con Cita