Come rendere accessibile l'API REST solo dall'applicazione attendibile (mia)? [duplicare]

-3

Come possiamo salvaguardare l'API REST accessibile solo da client fidati? Lasciatemi spiegare lo scenario, diciamo che c'è un'API a cui si accederà dall'applicazione mobile MA e dall'applicazione web WA. Oltre a queste due applicazioni, questa API non dovrebbe (e non deve) essere accessibile da nessun altro client.

Punti chiave:

  • Non posso usare l'autenticazione basata su token qui, poiché l'utente non è tenuto ad accedere all'applicazione per accedere (o solo leggere) alle informazioni.
  • L'incorporamento di qualsiasi informazione segreta all'interno dell'applicazione, da inviare insieme alla richiesta dell'API, non è sicuro, in quanto tale segreto può essere trapelato (anche se si utilizza SSL) a un potenziale utente che utilizza il reverse engineering.

In questo scenario, qual è il modo migliore per proteggere l'API REST?

    
posta Jignesh M. Khatri 06.02.2018 - 04:38
fonte

3 risposte

3

Non puoi. Questo è il motivo per cui è necessario disporre dell'autenticazione per presupporre che siano legittimi e che siano autorizzati a utilizzarli.

    
risposta data 06.02.2018 - 05:35
fonte
1

Avrai bisogno di una sorta di autenticazione per questo. Andrei persino a raccomandare l'implementazione di una sorta di sistema di login.

Il motivo è semplice, in nessun modo la tua API saprà che i tuoi clienti sono affidabili. Ha bisogno di una sorta di informazione per verificare che il client che è connesso sia quello che dicono di essere. Se non puoi incorporare le informazioni (non dovresti comunque), hai bisogno di un accesso.

    
risposta data 06.02.2018 - 05:40
fonte
-1

Non vedo perché non è possibile implementare una conversione basata su token. È possibile avere un token di inizializzazione che avvia la comunicazione con l'API. Questo token può essere memorizzato nel database o comunque lo desideri e, se possibile, cambiarlo di volta in volta. Solo il tuo client e il tuo server conoscono questo token e quando cambia.

Non è necessario che gli utenti siano coinvolti in termini di accesso. La verifica del token può essere eseguita a ritroso senza coinvolgere l'interazione dell'utente. Ogni volta che il tuo cellulare (client) accede all'API con il token concordato, il back-end può rimescolare il token e far sapere al client qual è il nuovo.

Ma ovviamente, la sicurezza di questo è strong solo quanto lo stadio di inizializzazione. Se, in qualche modo, c'è un modo in cui qualcuno potrebbe sapere del token di inizializzazione, conosceranno i token che verranno rimescolati da lì in poi.

Ma tu hai l'idea. È possibile. Tutto a tuo modo di progettarlo. Vi sono naturalmente altri modi con un concetto simile.

    
risposta data 06.02.2018 - 07:22
fonte

Leggi altre domande sui tag