¿Cómo proteger los datos JSON que se muestran en la página del servicio web?

3

Tengo una aplicación iOS que utiliza un servicio web para obtener datos de mi servidor. Agarra los datos y hace eco de una fuente JSON a la página web, y la aplicación iOS la interpreta. Tengo SSL, por lo que no me preocupa que los datos no estén seguros durante el transporte.

Mi problema es que cualquiera puede acceder a la página del servicio web y leer los datos JSON. No sería difícil para alguien construir un programa que interprete estos datos y los datos incluyen información confidencial del usuario.

Quiero saber cómo puedo asegurarme de que las personas no puedan simplemente escribir la URL y ver los datos, o alguna forma de cifrar la fuente JSON que se imprime de forma segura para que necesite las claves para leerla.

    
pregunta user3762780 25.02.2016 - 23:13
fuente

2 respuestas

4

Simplemente suena como que necesitas agregar autenticación al servicio web.

A partir de su descripción, parece que la solicitud es la siguiente:

App --> Web site --> Web service

Si los usuarios tienen que registrarse para su servicio, cuando inicien sesión en la aplicación, deberán autenticarse con el servicio web y recuperar un token de autenticación. Asegúrese de que el servicio web autentique y autorice al usuario antes de devolver cualquier fecha.

App [Auth Token] --> Web site [Auth Token] --> Web service [Auth token]

Entonces, si alguien va directamente al punto final del servicio web, no recuperará ningún dato ya que no tendrá un token de autenticación válido.

    
respondido por el SilverlightFox 26.02.2016 - 09:48
fuente
3

Un gran problema:

Permitir que cualquier persona acceda a sus datos sin autorización, especialmente datos confidenciales es un ENORME no-no!

Dicho esto, si la única forma de acceder a este servidor es con una aplicación, entonces lo más fácil es usar un certificado SSL específico de la aplicación que, a menos que la solicitud use ese certificado, no sucederá nada.

El único inconveniente de esto es que solo será accesible a su aplicación. Si quieres hacerlo de otra manera, puedes hacer otras opciones:

  • VPN. A menos que esté en esta VPN, no puede acceder al servidor porque no puede verlo.

  • Claves de API con permisos y limitaciones (la práctica más común)

  • Estados y cookies (práctica común), que también pueden ser almacenados por el usuario, tiempo de espera y cifrado de forma segura (también práctica común)

respondido por el Robert Mennell 26.02.2016 - 00:16
fuente

Lea otras preguntas en las etiquetas