Non è possibile rifiutare efficacemente le connessioni se non si fornisce a ogni cliente una chiave privata che è possibile revocare individualmente. Ma questo è probabilmente eccessivo. Non hai bisogno di una soluzione a prova di proiettile se la maggior parte delle persone non si preoccupa di sparare un proiettile.
È una domanda di sicurezza, quindi descriviamo un modello di minaccia e strategie di mitigazione.
Supponiamo che tu abbia un URL che colpisce che può comportare un costo notevole per te (ad es. Costo di elaborazione) e che vuoi proteggerlo sia da un semplice attacco DoS che da app di copione.
Usa SSL per nascondere la connessione dall'analisi facile. Utilizzare un numero di porta non ovvio, una sequenza di reindirizzamento, uno scambio di cookie per complicare leggermente la connessione prima di eseguire la parte costosa della richiesta. Usa del codice segreto inserito nella tua app per far sapere al server che deve accettare la connessione.
Ora qualcuno non può imparare l'URL costoso da colpire semplicemente eseguendo uno sniffer di pacchetti o guardando stringhe simili a URL nel tuo codice. Un potenziale attaccante deve decompilare la tua app.
Non puoi davvero proteggere il tuo codice dall'essere decompilato e / o eseguito con un debugger. L'attaccante alla fine apprende la chiave segreta e la sequenza di connessione.
Ti accorgi che inizi a ricevere richieste di rouge sul tuo costoso URL: in una forma di attacco o in una forma di app copycat che deve accedere al tuo servizio per essere eseguito, o forse un codice di exploit viene pubblicato pubblicamente. Tuttavia, non è possibile distinguere una richiesta non autorizzata da una richiesta legittima.
Crea un aggiornamento secondario gratuito per la tua app, con una chiave segreta diversa. Dovrebbe colpire un altro URL costoso che fornisce gli stessi dati dell'URL costoso compromesso. Per qualche tempo, rendere entrambi gli URL accessibili.
Guarda la tua base di utenti passare alla versione aggiornata. Limita l'URL costoso compromesso e infine 404. Hai appena mitigato una violazione della sicurezza, si spera senza perdere troppo. Torna al punto di partenza.
Disclaimer: non sono un esperto di sicurezza.