Enviando datos desde el cliente de Android a la base de datos

3

He creado una aplicación para Android que envía datos a un servicio web. En este momento, el usuario envía los resultados de su prueba (ID de prueba, nombre de prueba, tiempo de prueba e ID de usuario). El problema es que envío los datos del cliente al servicio web en JSON; Se puede acceder al servicio web en el navegador. Sin embargo, un usuario no autorizado podría usar su navegador para llamar al método del servicio web para insertar la puntuación. ¿Como puedó resolver esté problema? Debo dejar que solo el cliente de Android envíe los datos al servicio web.

    
pregunta Layior 19.12.2014 - 09:53
fuente

2 respuestas

2

En general, esto no se puede hacer. Si el usuario tiene acceso a la aplicación, puede realizar ingeniería inversa y emular de forma indetectable todo lo que hace.

Lo que puedes hacer es poner obstáculos en su camino. Simplemente transmitir un hash salado junto con los datos detendrá el 99% de los posibles atacantes; Si está dispuesto a hacer un mayor esfuerzo, el uso de la criptografía de clave pública para cifrar y firmar el mensaje que se transmite detendrá a casi todos.

Esto no detendrá ni ralentizará significativamente a un atacante profesional, pero si su modelo de amenaza principal es "estudiante universitario con especialización en historia del arte" o "usuario casual de Facebook", es más que adecuado.

    
respondido por el Mark 18.12.2015 - 10:24
fuente
-3

Llame al método sendPostRequest(String username, String pass) con parámetros. Puede llamar a este método desde el subproceso de la interfaz de usuario, la solicitud se enviará desde un subproceso diferente (AsyncTask está incrustado).

    
respondido por el kumar 04.07.2015 - 10:38
fuente

Lea otras preguntas en las etiquetas