** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Seguridad bbdd
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Seguridad bbdd

 Responder Responder
Autor
Mensaje
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Seguridad bbdd
    Enviado: 20/Junio/2020 a las 20:38
Buenas tardes:

Después de ver este hilo:

http://www.mvp-access.com/foro/forum_posts.asp?TID=83467

Me surgen algunas dudas de novato...

- Tengo una bbdd con muchas consultas, forms, etc. La idea de embeber las consultas en los forms es demasiado.

- He pensado en que si creo un accde (A2007) con bloqueo de tecla shift, contraseña incial (creo recordar no se donde lo vi que más de 18 caracteres ya es fuerte), otra contraseña de inicio de form, vba también con contraseña, ocultando las tablas vnculadas y cambiando la extensión a: accdr (runtime) tiene mucha seguridad (seguro que no jeje.. ya entiendo que si vuelvo a cambiar la extensión se puede acceder al código con shift habilitado, y se verían las tablas/consultas).

- Es la alternativa a no tener las tablas en la misma aplicación (que ya vi en el hilo como se llaman desde otra bbdd) y las consultas en la propia bbdd (no embeber el vba en el form) y no tener que ir form por form embebiendo código, etc.

- ¿Es así segura la bbdd? ¿qué se me escapa en tema seguridad? si me apuras ¿si sólo bloqueo la tecla shift por código y las teclas especiales, panel de exploración, etc. vamos las opciones de access es suficiente para no ver "las tripas" de la bbdd?

- El desbloqueo de la tecla shift se hablitaría en la bbdd sólo por el admin.

Gracias y saludos.



Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4558
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Junio/2020 a las 22:47
Buenas

Quienes son los usuarios que van usar tu aplicación ?
Que tipo de aplicación es ?
Donde se usa tu aplicación ?
Que tipo de datos guardas en tus tablas ?
Vas a poner password en el codigo VBA ?

Arriba
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Junio/2020 a las 09:01
Buenos días:


Entiendo que depende de las variables que me preguntas una seguridad será mejor que otra, etc. pero intento centrar la cuestión.

Si es imposible que alguien externo al admin pueda saltarse el bloqueo de la tecla shift al inicio (teniendo un método de habilitarla una vez en la bbdd)... ¿es segura la aplicación y no es necesario trasladar las tablas, ocultar el vba con contraseña, embeber las consultas en los forms, etc?

¿O se puede saltar el bloqueo shift a linicio de la bbdd? Si es así ya hablamos de otra cosa y es necesario más seguridad.

Gracias por tu tiempo y saludos.
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4558
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Junio/2020 a las 11:26
Buenas

Simplificando en seguridad todo lo que es posible proteger también es posible desproteger........ dicho esto,.......  La protección / desproteccion de tecla SHIFT también estaría incluida peroooo depende de como se hubiese protegido ,...........en mi Web hay un método (el cuarto parámetro) 
donde se explica como añadir una capa extra de seguridad... ....


Por eso reitero lo que preguntaba al inicio , es necesario entender en que contexto nos movemos....... La seguridad tiene que estar adecuada a lo que se pretende proteger , ........ No tendría sentido  aplicar medidas de seguridad extremas, para proteger una aplicación  que cualquiera fuese capaz de crear o hacer .....


 


Editado por javier.mil - 21/Junio/2020 a las 11:33
Arriba
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Junio/2020 a las 22:30
Buenas noches:

¿Entiendo que se podrá entonces desde una bbdd externa acceder al cuarto parámetro para cambiarlo? Pq. desde la actual como se hace (teclear shift) no entiendo como se podría cambiar.

Estoy viendo tu web en el apartado Seguridad.

Gracias y saludos.
Arriba
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Junio/2020 a las 22:40
Buenas de nuevo :-)

Estoy probando la función: RT_RutaTabla (sin contraseña) del enlace inicial y no me deja continuar (ver final).

Tengo la BBDD en C:\  (solo tablas).

constDirectorio (en un módulo) como constante:
Public Const constDirectorio As String = "C:\Base.accdb"

La función en un módulo:

Function RT_RutaTabla(Nombretabla As String) As String
RT_RutaTabla = "[" & constDirectorio & "].[" & Nombretabla & "]"
End Function

Y falla aquí:

If (IsNull(DLookup("[Usuario]", RT_RutaTabla("tbUsuarios"), "[Usuario] ='" & Me.CboUsuarios.Column(1) & _ sigue...

Con este mensaje:

https://www.dropbox.com/s/kql60xap2cq6ef2/Error_tabla.jpg?dl=0

¿Hay que hacer algo distinto en las funciones de dominio?

Pq. he cargado en un form la tabla externa y bien, en un combox tb.

Gracias y saludos.

Edición:

- He conseguido un avance parcial con:

        Set sExiste = CurrentDb.OpenRecordset("select * from " & RT_RutaTabla("tbusuarios") & " where Usuario ='" & Me.CboUsuarios.Column(1) & _
        "' And Pass = '" & Me.txtPass.Value & "' ")

... que es correcto.

... ¿Pero además del trabajo de adaptar en toda la bbdd la ruta también hay que cambiar todas las funciones de dominio para adaptarlas como he editado? Locura Cry

Gracias y saludos.



Editado por Parche - 22/Junio/2020 a las 09:44
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4558
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 23/Junio/2020 a las 09:11
Ves con cuidado en tu campo txtPass un usuario avanzado podría injectar codigo SQL que se saltase el password,........
En el campo Me.txtPass.Value tendrías que mejorar esa instrucción dándole mas robustez  .........


Arriba
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 23/Junio/2020 a las 17:00
Buenas tardes:

- El txtpass tiene formato de contraseña.

- Y en el evento al salir:

If Comprueba(Me.txtPass) = False Then
MensajeInf ("La contraseña sólo debe contener mayúsculas/minúsculas y/o números")
Me.txtPass.SetFocus
Me.txtPass = ""
Exit Sub
End If

¿Es eso lo que decías?

Gracias y saludos.

-- Queda pendiente me comentes el comentario anterior del cuatro parametro --- Wink


Editado por Parche - 23/Junio/2020 a las 17:01
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4558
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 24/Junio/2020 a las 09:52
Depende de lo que haga la función Comprueba ,........ Si realmente hace lo que parece que hace es  "La contraseña sólo debe contener mayúsculas/minúsculas y/o números" entonces estaría bien,.....

Pero personalmente preferiría cambiar el SQL

Tu código SQL
Set sExiste = CurrentDb.OpenRecordset("select * from " & RT_RutaTabla("tbusuarios") & " where Usuario ='" & Me.CboUsuarios.Column(1) & _
        "' And Pass = '" & Me.txtPass.Value & "' ")


Por este otro
Set sExiste = CurrentDb.OpenRecordset("select * from " & RT_RutaTabla("tbusuarios") & " where Usuario ='" & Me.CboUsuarios.Column(1) & _
        "' And Pass = '" &
Replace(Me.txtPass, "'", "''") & "' ") 

 

Arriba
Parche Ver desplegable
Habitual
Habitual


Unido: 03/Julio/2018
Localización: Alicante
Estado: Sin conexión
Puntos: 141
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Parche Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 27/Junio/2020 a las 09:35
Buenos días:

Por mi parte se puede cerrar el hilo.

Gracias y saludos.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable