PDA

Ver la Versión Completa : Ocultar carpeta raw


Alemanarg
06/08/13, 02:04:40
Hola!
Estoy investigando el tema de seguridad y me encuentro con el problema de la carpeta res/raw.
Allí tengo claves o páginas a un archivo php de una BD. Como hago para ocultarla y que no aparezca cuando transformo el .apk en un .rar?

Muchas gracias!

mocelet
06/08/13, 08:14:07
No puedes, además de que meter la contraseña de la base de datos es la peor práctica que puede hacerse al diseñar una app desde el punto de vista de seguridad.

A la base de datos solo deberían conectarse directamente servidores que tú controles, nunca el usuario final.

kriogeN
06/08/13, 08:54:29
Lo máximo que puedes llegar a hacer en cuanto a ofuscado en Android es ProGuard. Y tampoco te creas que hace muchos milagros.

En Android tienes que programar pensando que cualquiera con medio cerebro va a ser capaz de ver tu código (y tus recursos, tanto raw como res) prácticamente (algo hace ProGuard) como tú lo escribiste.

EDIT: Buscando acabo de encontrar una aplicación llamada DexGuard, que es una versión de ProGuard específica para Android, que entre las cosas que lleva está un cifrador para los recursos.

mocelet
06/08/13, 14:19:02
Gracias por el apunte, para uso profesional el DexGuard pinta bien, aunque basta que se popularice para que se convierta en presa fácil, la clave de cifrado estará escrita en algún sitio.

Había otro servicio, no recuerdo el nombre, solo para ofuscar cadenas de caracteres. No era tan completo pero también era de pago.

Alemanarg
07/08/13, 04:12:31
Gracias por el dato!
Coincido con ustedes con el tema de la seguridad. Ahora..algo que seguramente se han encontrado.
Es común que una app se conecte a una base de datos. Para eso mínimamente necesita un archivo php donde están los datos de la base, etc. Como se hace para poner esa pagina dentro de la aplicación? Hay alguna manera de no poner una pagina en ese caso?

mocelet
07/08/13, 08:07:52
No es para nada común que una app se conecte a una base de datos, lo normal es que la app se conecte a un servidor externo y ese servidor sí se conecte a la base de datos.

Las paginas php se ejecutan en el servidor, no en la app Android.

Alemanarg
07/08/13, 15:45:52
Si, exacto.
PHP se ejecuta en el servidor. El tema es que en el archivo de PHP se tiene el nombre de la base, servidor, etc...con esos datos se puede acceder a la BD.
Cualquiera que vea la dirección en la app puede entrar y bajarse el archivo php donde tiene los datos de la base de datos.
O me estoy equivocando con el planteo?

mocelet
07/08/13, 16:10:21
Los ficheros php se ejecutan en el servidor, no se descargan. Lo que se descarga es la información que genere ese php (el código html de una web, un json, lo que sea).

La única forma de bajarse un php es que el servidor esté mal configurado (y trate un php como un html) o accedan al servidor por otros medios (hackeándolo, bugs de seguridad, etc.).

Es más, si quieres en la URL no hace falta ni que se indique el nombre del fichero php, puedes usar las extensiones de reescritura de URLs de los servidores para que internamente cierta URL con el nombre que quieras se redirija al PHP que quieras.

Vas a tener que leer un poco más de tecnologías de servidor :)

Alemanarg
08/08/13, 04:21:24
Ya veo! GRACIAS POR la ayuda!
Veré el tema de htaccess que seguro tenga algo que ver.