When my app calls the server using a POST call how can i secure the client can't find the URL and try to do his own posts and use this against my server?
È possibile utilizzare SSL / TLS per proteggere la connessione. L'endpoint dell'URL sarà crittografato. I client possono vedere che si connettono all'host "dominio.com", ma non conoscono il percorso effettivo, ad es. "Domain.com/secret.php"
Assicurati di utilizzare l'autenticazione reciproca. Questo perché il tuo dispositivo client non può essere considerato affidabile. Dovresti includere una chiave privata con la tua app che il tuo server verificherà attraverso una risposta di sfida. Senza autenticazione reciproca, è possibile utilizzare un proxy Web come il violinista per decodificare SSL.
È possibile utilizzare il keystore di Android per memorizzare la chiave privata. Si noti che se il telefono è rootato, è possibile recuperare la chiave privata. Il link sottostante indica che a root è proibito creare o elencare le chiavi. Tuttavia, il comando su
consente a un utente root di passare a qualsiasi altro utente, che può quindi elencare le proprie chiavi.
Maggiori informazioni sull'uso del keystore per memorizzare il certificato:
link
Per compromettere la tua app, l'utente malintenzionato deve prima sradicare il suo telefono, recuperare la chiave privata, capire l'algoritmo di crittografia, decrittografare la comunicazione e infine codificare un client che simula la tua app. Questo dovrebbe fornire una ragionevole quantità di sicurezza che dovrebbe scoraggiare la maggior parte degli attacchi occasionali.