Nel mio caso sto usando l'API Dropbox. Attualmente sto memorizzando la chiave e il segreto in un file JSON, solo per poterlo gitignare e tenerlo fuori dal repository Github, ma ovviamente non è meglio che averlo nel codice dal punto di vista della sicurezza. Ci sono state molte domande sulla protezione/offuscamento di Python (solitamente per ragioni commerciali) e la risposta è sempre "No, Python non è pensato per quello".Come dovrei memorizzare le chiavi API in un'app Python?
Quindi, non sto cercando un modo per proteggere il codice ma solo una soluzione che mi consenta di distribuire la mia app senza rivelare i miei dettagli API.
inserirli in un file di testo come valori crittografati. Crea una chiave di crittografia memorizzata privatamente, decifrala quando necessario. Potrebbe esserci un modo migliore, ma in questo modo ha funzionato bene per me in passato. –
Se qualcuno esegue il programma sul proprio computer e il programma utilizza la chiave, viene praticamente divulgato. Non serve un genio per accendere WireShark, lasciare che il programma si connetta e filtrare l'acquisizione per le connessioni a dropbox (o qualche altro criterio - il caso peggiore che stai scavando attraverso alcune centinaia di pacchetti). E semplicemente offuscare il programma non ti comprerebbe nulla, dato che non puoi cambiare la stringa letterale che è la chiave API, o non sarebbe di alcuna utilità per il tuo programma. – delnan
@delnan Ma la chiave API dovrebbe essere visibile nel traffico HTTP? Dropbox fa tutto su SSL. Non so se usano le variabili GET o POST o le inseriscono semplicemente nelle intestazioni della richiesta HTTP. Quelle cose sono criptate in una richiesta HTTPS o solo nel corpo della richiesta? – espekia