Come proteggere i dati JSON visualizzati sulla pagina del servizio web?

3

Ho un'app iOS che utilizza un servizio Web per ottenere dati dal mio server. Cattura i dati e fa eco a un feed JSON alla pagina Web e l'app iOS lo interpreta. Ho SSL quindi non sono preoccupato che i dati non siano sicuri durante il transito.

Il mio problema è che chiunque può accedere alla pagina del servizio Web e leggere i dati JSON. Non sarebbe difficile per qualcuno costruire un programma che interpreti questi dati e i dati includano informazioni sensibili per gli utenti.

Voglio sapere come posso essere sicuro che le persone non possano semplicemente digitare l'URL e visualizzare i dati, o in qualche modo crittografare il feed JSON che viene stampato in modo sicuro in modo che sia necessario leggere le chiavi.

    
posta user3762780 25.02.2016 - 23:13
fonte

2 risposte

4

Sembra semplicemente che devi aggiungere l'autenticazione al servizio web.

Dalla tua descrizione sembra che la richiesta sia come segue:

App --> Web site --> Web service

Se gli utenti devono registrarsi al tuo servizio, quando accedono all'app devono autenticarsi con il servizio web e recuperare un token di autenticazione. Garantire che il servizio Web autentica e autorizza l'utente prima che venga restituita qualsiasi data.

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

Quindi se qualcuno va direttamente all'endpoint del servizio web, non recupererà alcun dato in quanto non avrà un token di autenticazione valido.

    
risposta data 26.02.2016 - 09:48
fonte
3

Un grosso problema:

Consentire a chiunque l'accesso ai tuoi dati senza autorizzazione, in particolare dati sensibili è un ENORME no-no!

Detto questo se l'unico modo per accedere a questo server è con un'applicazione, la cosa più semplice da fare è usare un certificato SSL specifico per un'applicazione che, a meno che la richiesta non usi quel certificato, non accadrà nulla.

L'unico svantaggio di questo è che sarà accessibile solo alla tua applicazione. Se vuoi farlo in un altro modo puoi fare alcune altre opzioni:

  • VPN. A meno che tu non sia in questa VPN, non puoi accedere al server perché non puoi vederlo.

  • Chiavi API con autorizzazioni e limiti (pratica più comune)

  • Stati e cookie (pratica comune), che possono anche essere memorizzati dall'utente, timeout e crittografati in modo sicuro (anche pratica comune)

risposta data 26.02.2016 - 00:16
fonte

Leggi altre domande sui tag