2012-01-16 11 views
6

Attualmente sto sviluppando un'app multi-piattaforma che utilizza Twitter, inclusa l'autenticazione tramite oAuth.Quali sono i rischi dell'esposizione della chiave oauth non-così-secret? Ci sono soluzioni alternative?

Ho visto molte app esistenti e la maggior parte di queste sembra incorporare sia l'id che la chiave segreta all'interno dell'app.

Quali sono i rischi di ciò? È solo che qualcuno può "scaricare e ispezionare" il tuo file binario dell'app per estrarre la tua chiave - e può quindi fingere di essere la tua app (stile di phishing)? O ci sono altri rischi?


Oltre ai rischi, esistono soluzioni alternative o soluzioni che le persone conoscono?

L'unica soluzione che ho già visto è che alcune persone hanno risolto il problema instradando tutte le chiamate di Twitter tramite il proprio sito Web - ad es. OAuth Twitter with only Consumer Key (not use Consumer Secret) on iPhone and android - ma questo sembra abbastanza lento e costoso - preferirei non instradare tutte le chiamate tramite il mio servizio web se posso evitarlo (o ho frainteso la soluzione - è solo l'autenticazione che passa attraverso un sito web?)

+0

Capisco la tua preoccupazione, ma a meno che l'app non diventi grande e popolare, non penso davvero che sia un problema. E se eseguono il reverse engineering della tua app, devi semplicemente inserire i termini che sono illegali e denunciarli :) – f2lollpll

risposta

1

La soluzione che ho trovato è quella di recuperare la chiave segreta dal server web (su SSL) utilizzando una chiamata al servizio web autenticata. Puoi metterlo in cache nell'app client (solo in memoria). Usalo quando è necessario senza riconnettersi al server.

Il lato negativo che vedo è che probabilmente qualcuno potrebbe ancora eseguire l'app con un debugger e ispezionare la memoria e ottenere la chiave.

Problemi correlati