Ho bisogno di integrare la mia app Android con Dropbox, in pratica tutto quello che voglio è che l'utente scelga un file dalla sua casella personale e lo dia alla mia app. Per farlo, sto utilizzando dropboxChooserSDK e richiede una chiave API per accedere a Dropbox.
Dal mio primo istinto dovevo cercare su come nascondere la chiave. Guardando in profondità in ho notato che non esiste un proiettile d'argento per risolvere il problema (avrei dovuto aspettarmelo tanto).
D'altra parte non sembra che ci sia molto danno nell'avere la chiave della tua casella dropbox esposta al mondo, dato il prupo della chiave come spiegato nel loro documentazione di riferimento :
If you're building a developer tool on top of Dropbox, your developers will need their own Dropbox app keys
While we encourage developers to use our official SDKs and libraries, we know there are a lot of different approaches to building frameworks and APIs. Regardless of how an app makes use of the Dropbox Platform, we need to know what that app is so we can let users know which apps are accessing their data. For that reason, if you provide software or services that wrap the Dropbox Platform for other developers to use, those developers must still sign up for their own Dropbox app key.
Ma questo mi ha fatto riflettere, sulla domanda, quanto impegno dovrei mettere per nascondere le mie chiavi API? La mia intuizione mi dice di usare un calcolo del back of envelope per stimare i trade-off dei costi / benefici individualmente, ma ho anche letto qui che è in corso una discussione su tali problemi (anche se non sono riuscito a trovarli).
Qual è l'intesa generale sulla protezione delle chiavi API?