sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo solo permito el acceso a mi base de datos MySQL desde mi aplicación iOS? (Usando webapp como puerta de enlace a db)

Como se dijo antes, no hay 100% de seguridad posible. Pero existen varias soluciones que juntas dan una gran seguridad.

Https

Como bien apuntas, esta es una parte importante, ya que evita el olfateo.

Sesiones

Usa sesiones y no permitas ninguna solicitud sin una sesión válida (excepto la primera, que debe autenticar la aplicación).

Huella dactilar

Verifique el agente de usuario y configure encabezados http adicionales para obtener una huella digital única para su aplicación. (Todavía alguien podría olfatear, pero necesitaba usar curl o similar).

Ofuscar solicitudes

Cree su cadena de consulta y aplique una función hash. El servidor necesita implementar la función inversa. ?43adbf764Fz en lugar de ?a=1&b=2

Cifrar

Esto va un paso más allá. Use un secreto compartido para calcular un hash. En el servidor repite lo mismo. Esto ya es seguridad fuerte. Para romper, uno necesita aplicar ingeniería inversa a su aplicación.

Usar secreto compartido único

Dices que es una aplicación para iOS. Tras la instalación, iOS genera un token único. Haga que su aplicación registre este token con su servidor. De esta manera, tiene un fuerte secreto compartido único para cada instalación, y no habría forma de piratear su aplicación web.