la vera domanda è che cosa fa un attaccante ottiene di rubarla ...
Si dovrebbe fare del vostro meglio per proteggere i segreti, ma alla fine, un hacker altamente motivato può sempre arrivare a lui in un app installata. Quindi è il valore del segreto contro la difficoltà di estrazione.
Il valore del segreto del client sta impersonando l'applicazione. Non dà alcun accesso ai dati dell'utente. Tuttavia, poiché Twitter supporta l'emissione automatica di credenziali per le app approvate in precedenza (il loro accesso con il flusso di Twitter), un utente malintenzionato può potenzialmente creare un'app Web con i dati segreti e rubare gli utenti utilizzando un reindirizzamento cieco.
Il problema con l'implementazione di Twitter è che non chiedono allo sviluppatore la natura dell'applicazione. Se lo facessero, non ti avrebbero dato un segreto per cominciare e bloccheranno chiunque costruisca un'applicazione web usando le credenziali del tuo cliente e rubando i dati dagli utenti che l'hanno già approvato.
L'offuscamento è un'opzione, ma debole. Spostare il segreto su un server Web che funge da proxy API è un altro, ma questo sposta semplicemente il problema altrove perché ora la tua app deve autenticarsi contro il server proxy. Tuttavia, questo modello può essere ragionevolmente sicuro se si richiede agli utenti di accedere al proprio sito (che può utilizzare, tramite le viste Web, Twitter per accedere). In questo modo, chiunque cerchi di abusare del tuo proxy avrà bisogno che i suoi utenti aprano account sul tuo servizio, il che non è molto allettante.
In breve, andare avanti e offuscare. Non fa male. Prendi in considerazione l'utilizzo anche del modello proxy. E forse far sapere a Twitter che le loro politiche di sicurezza non sono "grandiose".
fonte
2011-08-20 14:31:52
Ho la stessa strategia con la mia app per iOS e NodeJS + ExpressJS + PassportJS nel back-end. Io uso Twitter reverse auth per autenticare gli utenti da iOS. Ma per proteggere questo e impedire agli utenti di annusare i pacchetti HTTP nel mezzo per scoprire cosa c'è nelle intestazioni, sto pensando di usare HTTPS sui miei server per crittografare i dati. Controlla questo per evitare l'incorporamento delle chiavi dei segreti nella tua app: https: //dev.twitter.it/docs/ios/using-reverse-auth – Maziyar
Nota: Reverse Auth è solo per iOS –