Accediendo a la base de datos SQL desde la aplicación Java de Android. ¿Cómo almaceno los detalles de la base de datos SQL para que estén seguros?

1

Por lo tanto, estoy desarrollando una aplicación Java que será gratuita y, de preferencia, no requerirá un proceso de registro. Parece que no puedo pensar en una idea para almacenar los datos de inicio de sesión de forma segura.

He pensado en agregar sal y hash a la contraseña, pero eso significa que no podré recuperar la contraseña para usarla en la base de datos. También he pensado en utilizar el cifrado, pero eso significaría que estaría almacenando la clave de cifrado en la aplicación, que tampoco parece segura.

¿Cuáles son las mejores prácticas para este problema? Los datos no consisten en datos personales, pero sería bueno saber cómo proteger la base de datos.

    
pregunta Conor.Berr 15.11.2017 - 20:16
fuente

1 respuesta

1

Ya que asumo que su base de datos será accesible a Internet, definitivamente use una conexión cifrada entre su aplicación y la base de datos. MySQL tiene documentación sobre este aquí .

Un enfoque es envolver la base de datos con un servicio web. Esto le permite almacenar la contraseña de la base de datos en el servicio web, en lugar de la aplicación. Esto también le da más poder para decidir qué consultas se ejecutan en la base de datos.

Otro enfoque es generar dinámicamente un usuario en la base de datos para la aplicación cuando se instala. Esto le permitirá asegurarse de que las credenciales de la base de datos del usuario sean únicas, de modo que cualquier acción realizada contra la base de datos se pueda rastrear a una única instalación de la aplicación.

Sin embargo, esto me lleva a un poco de tangente:

Considere el control de acceso basado en roles para su aplicación.

Si su aplicación solo lee datos de la base de datos, y si le preocupa la integridad de los datos en su base de datos, considere crear dos roles de usuario en su base de datos. Un rol de usuario podrá crear, modificar o eliminar datos: este usuario es para su uso como administrador de la aplicación. La otra función del usuario solo puede leer datos: esta es la función del usuario que usará su aplicación para iniciar sesión en la base de datos.

MySQL tiene capacidades para realizar este tipo de control de acceso basado en roles, aunque de manera incómoda, echa un vistazo a Documentación de MySQL para obtener más información.

    
respondido por el PlasmaSauna 16.11.2017 - 05:37
fuente

Lea otras preguntas en las etiquetas