Possiedo un .NET Web Api che serve un'app mobile basata su Cordova e un front-end Web scritto in AngularJS. Ho fatto un sacco di ricerche e la maggior parte delle fonti non offre una risposta eccezionale o una grande esagerazione per la mia situazione. La sicurezza non è una grande preoccupazione, ma voglio utilizzare una certa quantità di sicurezza di base per garantire che solo la mia app stia effettuando chiamate al mio server.
Tutti gli utenti sono tenuti ad accedere tramite Facebook e non hanno le proprie password per la mia app. Il mio pensiero è stato, finché sono stati autorizzati tramite Facebook e la richiesta è originata dalla mia app, quindi sono a posto.
La domanda è: come posso garantire che la richiesta provenga dalla mia app? Durante l'accesso, invio i token bearer in modo che la parte sia valida, ma per quanto riguarda le chiamate che non richiedono l'autorizzazione? Il problema principale che viene in mente è inviare feedback e moduli di sondaggio, odierà qualcuno che si aggira con quei record. L'opzione migliore che ho trovato sembra essere quella di creare un token crittografato dei parametri di chiamata più un app_secret e allegare alla richiesta. I problemi con quello non potrebbero qualcuno ricreare quello? E poiché il front-end è in Javascript, potrebbero trovare l'app_secret.
1) Come posso proteggere il server per garantire che le chiamate di pre-accesso provengano dalla mia app?