Come proteggere l'endpoint API dall'abuso nell'app mobile?

2

Supponiamo di avere un'app mobile che recupera il feed delle notizie da un URL sul mio server.

GET/ https://example.com/api/v1/newsfeed

C'è un modo per limitare l'accesso a questo endpoint solo dall'app mobile, non altre fonti come uno script (Python, NodeJs, ...) o software (Postman, Browser ....)?

Suppongo che questo url debba essere compilato in binario e dal momento che la richiesta è protetta (https) il software di sniffing dei pacchetti rivelerà solo l'url di base (esempio.com in questo caso) e l'endpoint & il corpo sarà crittografato.

Ma presumo che ci siano ancora modi per conoscere questo endpoint. Sospetto due possibilità

  1. Installazione di un certificato di terza parte sul telefono cellulare per decrittografare i pacchetti
  2. Uso di un decompilatore

Ho solo un'idea approssimativa, ma non sono sicuro delle caratteristiche tecniche di questi due metodi.

    
posta TSR 02.12.2018 - 16:01
fonte

2 risposte

2

È possibile attenuare la minaccia della prima possibilità implementando il blocco dei certificati. Ciò impedirà che un certificato di terze parti venga emesso e considerato attendibile dalla tua APP.

In termini di decompilazione potresti provare a oscurare l'URL, ma l'analisi dinamica sarebbe comunque in grado di trovare l'URL.

Potresti voler eseguire un controllo sul lato server. Chiedere al server di lanciare una sfida e il cliente si adopera per creare una risposta alla sfida. Ciò potrebbe aumentare la difficoltà di qualsiasi exploit scritto.

Una soluzione semplice è controllare l'intestazione della richiesta e assicurarsi che cose come l'agente utente e altri attributi corrispondano a ciò che ti aspetti.

    
risposta data 02.12.2018 - 18:11
fonte
1

Chiedi all'applicazione di registrarsi con il server - memorizza in modo sicuro un segreto sul dispositivo come parte del processo di registrazione. Questo risolve solo una decompilazione dell'apk

Per quanto riguarda il protocollo, non importa se il suo Python o un dispositivo è lo stesso dove raggiunge l'altra estremità.

Se un utente malintenzionato ha accesso fisico al telefono sbloccato o può installare qualsiasi cosa su di esso, nessun controllo è importante. L'account utente è stato violato e possono chiamare quell'API.

    
risposta data 02.12.2018 - 21:32
fonte

Leggi altre domande sui tag