aggiungi un altro livello di protezione sopra oauth 2

0

La mia Rest API è protetta usando Oauth2 . Il mio client principale è un native app .

funziona bene ma ci sono alcune chiamate all'API che voglio assicurarmi che vengano eseguite dal mio client - il che significa che se l'utente ha ottenuto access token - non sarà in grado di utilizzare curl per chiamare il mio Rest api .

Ad esempio, se ho un Rest api per Achievement unlocking , come posso assicurarmi che un utente autenticato non sia in grado di chiamare questa API di riposo per sbloccare l'achivment?

Soluzioni a cui ho pensato:

  1. Firma la richiesta con un'intestazione speciale - Ma penso che sia fragile
posta royB 26.02.2015 - 14:46
fonte

1 risposta

1

Non appena si distribuisce il client su un dispositivo che non è possibile controllare completamente, non c'è modo di essere assolutamente sicuri che chiunque possa manomettere le richieste.

Tuttavia, ciò che puoi fare è mettere in atto alcune misure che richiederanno il lavoro da parte dell'utente malintenzionato, ad esempio, potresti crittografare e / o firmare i tuoi dati utilizzando le chiavi incorporate nell'applicazione. Per inviare dati al server, l'utente malintenzionato dovrebbe eseguire l'attività di crittografia / firma per inviare dati validi. Ciò significa che dovrà eseguire il reverse engineering dell'applicazione o trovare un modo per utilizzare l'app per eseguire il lavoro per lui (cosa che non dovrebbe accadere). Qualcuno motivato abbastanza riuscirà alla fine dal momento che tutti i dati sono presenti sul suo dispositivo. L'idea è di essere dispendiosa in termini di tempo in modo che lo troverà non vale la pena.

OAuth risolve solo il problema di autorizzare un utente specifico. Pertanto, dovresti essere in grado di garantire che un utente possa solo manomettere le sue stesse richieste e non le richieste di altri.

    
risposta data 26.02.2015 - 15:18
fonte

Leggi altre domande sui tag