Stiamo creando una libreria Android per le nostre API Rest che gli sviluppatori di app accederanno con un token univoco. Dato che si tratta di un servizio a pagamento, e si tratta di un modello di prezzo per richiesta o per installazione, come salvaguardiamo gli sviluppatori a pagamento dall'abuso, diciamo se qualcuno, a parte lo sviluppatore, riceve il token da:
- Decompilazione dell'app
- Esecuzione di un attacco Man in the Middle (anche se è HTTPS) e ottiene il token
In questo momento stiamo facendo in modo che ogni sviluppatore ospiti il suo endpoint separato (URL del server) che è codificato nella libreria quando glielo diamo. Questo proxy inverso end-point alla nostra API, e in questo modo, siamo in grado di limitare le richieste di IP e anche di differenziare il traffico. Tuttavia, in realtà non risolve la parte di abuso del problema, ed è anche troppo doloroso se vogliamo scalare fino a un milione di app.
Che cosa possiamo fare?