Android: ¿Qué tan segura es la base de datos con la aplicación

Quiero saber lo seguro que es embalar la base de datos con la aplicación en android. ¿Pueden los usuarios acceder fácilmente a la base de datos? Como la base de datos que tengo tendrá datos que no quiero ser hackeado por los usuarios por mal uso, ¿cuál es la mejor manera de proteger la base de datos en aplicaciones móviles?

También mi aplicación utilizaría servicio web (contactando mi propio sitio web) eg http: \ www.mysite.com/services/xxx

Mi sitio, a su vez, devolverá algunos datos a la aplicación para móviles. Si alguien descompila el código java (en apk), obtendrá fácilmente acceso a la URL que estoy usando para el servicio web. ¿Cómo puedo proteger mis datos en el sitio web para que sean atacados por usuarios malintencionados? Si alguien llega a conocer la URL, simplemente puede escribir esa URL en el navegador y obtener todos los datos en formato json que no quiero que los datos pueden ser muy sensibles. Incluso si lo mantengo codificado, entonces el usuario puede conocer la codificación del código java (que obtiene después de descompilar apk).

¿Cómo evitar que mi DB sea mal utilizado?

Si mi solicitud es para mostrar los lugares locales como restaurantes, bares, etc en el móvil siempre debo buscarlos desde el sitio web utilizando el servicio web o proporcionar una base de datos local con estos detalles para que la información se puede buscar rápidamente. En este caso, puedo proporcionar un servicio web UPDATE que actualizará la base de datos local. Pero la seguridad de la DB local me preocupa mucho.

¿Puede cualquier persona por favor sugerir dónde guardar el DB y cómo protegerlo?

Rgds, Sapan

3 Solutions collect form web for “Android: ¿Qué tan segura es la base de datos con la aplicación”

Las bases de datos locales y su archivo apk pueden ser leídos fácilmente por cualquier dispositivo enraizado. Esta herramienta puede incluso descompilar sus recursos como se explica en este tutorial de youtube (nunca lo intenté en realidad).

Así que usted tendría que almacenar sus datos cifrados en su base de datos y descifrarlo forman su código de aplicación para asegurarse de que nadie puede acceder a él simplemente obteniendo la forma de base de data directorio de data de su dispositivo.

Usted no debe poner sus datos sensibles (como contraseñas, etc) en la carpeta de recursos, ya que puede ser descompilar, ponerlo en su código.

Ahora unas palabras a su API de JSON. Ocultar la URL no es suficiente, ya que el usuario puede realizar un seguimiento de sus solicitudes fácilmente por un sniffer y obtener que de todos modos. Debe proporcionar un mecanismo de autenticación para proteger el acceso no autorizado y también proteger su comunicación mediante SSL. (Por ejemplo, mediante la autenticación HTTP – sólo tiene sentido cuando su servidor proporciona SSL.)

Éstas son las cosas que usted debe pensar alrededor y decidir usted mismo cómo es sensible sus datos realmente es.

Por lo que yo entiendo, vas a:

  1. Pack DB inicial en su archivo APK (digamos con res / carpeta de activos)
  2. Durante la primera ejecución explote el archivo DB de res / asset a la carpeta de datos de la aplicación
  3. Luego, de vez en cuando, buscar datos en DB desde el sitio web / webservice

En este caso hay básicamente 2 vulnerabilidades (datos almacenados quiero decir):

  1. Imagen de DB inicial, ya que está lleno de APK (que es en la vida real sólo archivo ZIP), por lo que cualquier persona puede desempaquetar y ver lo que está embalado en su base de datos
  2. Archivo DB almacenado en la carpeta de datos de la aplicación (normalmente / data / data / MY_APPLICATION_PACKAGE / bases de datos). Esta carpeta es accesible en el dispositivo con raíz, por lo que de nuevo sus datos pueden ser fácilmente seleccionados

La única opción que se debe proteger es cifrar el contenido de la base de datos. La manera más fácil de hacerlo para almacenar datos sensibles en BLOBs (en forma de XML de JSON) y cifrar / descifrar los BLOBs después / antes del uso real de ciertos registros.

Yo personalmente lo hice en mi aplicación – y funciona bien.

Compruebe estos enlaces para proteger su archivo apk para descompilar

Cómo hacer apk Secure. Protección de Decompile

Protección de Android apk para evitar la descompilación, sniffing de red etc

Decompiling DEX en el código fuente de Java

  • Android 6.0 y superiores no se borran los datos de sqlite del teléfono después de desinstalar la aplicación
  • Android sqllite idioma turco
  • Android Sqlite SQLiteDiskIOException: error de E / S de disco (código 1290) SQLITE_IOERR_DIR_FSYNC
  • Android: cómo consultar SQLiteDatabase con args de selección de no-cadena?
  • Vista de lista con la opción de actualización y supresión mediante contextmenu
  • Creación de tablas en la base de datos sqlite en android
  • Sqlite plugin para Eclipse: depurar la base de datos sqlite en el dispositivo Android en vivo
  • Alcanzó el tamaño MAX para la caché de instrucciones compiladas-sql para la base de datos
  • La base de datos no se eliminará cuando desinstale la aplicación de Android
  • Cómo contar el número de columnas en una tabla en SQLITE?
  • ¿Cuál es el tamaño máximo de la base de datos SQLite en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.