Attualmente sto scrivendo un'app di riga di comando NodeJS. L'app effettua una chiamata API e restituisce alcuni dati all'utente. Dato che questa è un'API pubblica, l'utente richiede un token API. Questa CLI verrà installata globalmente sulla macchina dell'utente tramite npm i -g super-cool-api-cli
.Archiviazione sicura dei dati in un'app CLI di nodo
La prima volta che l'utente esegue la CLI, viene richiesto il token e quindi lo memorizzo in modo che ogni volta che lo eseguono non è necessario inserirlo. Ho fornito all'utente un modo per ripristinalo pure. Sto riporlo nel reale directory del mio modulo CLI, che come detto è installato a livello globale, e sembra qualcosa di simile:
fs.writeFile(__dirname+'/.token.json', JSON.stringify({ "token": token }, null, 2), 'utf8', (e)=>{
// error handling and whatever
});
nomino il file .token.json
, utilizzando un punto per almeno rendere il file nascosto per impostazione predefinita.
Immagino che quello che sto chiedendo sia se esiste un modo migliore/più sicuro di memorizzare le informazioni sensibili in un'app di riga di comando NodeJS, che verrebbe eseguito più volte. Ho pensato di usare cose come environment variables ma sembrano scadere alla fine del processo.
Le considerazioni di sicurezza sono un'abilità che mi manca, ma desidero fortemente saperne di più, quindi grazie in anticipo per i suggerimenti.
Ho bisogno di fare una cosa simile come con l'app CLI del nodo. Ho notato che non hai accettato nessuna risposta, che cosa hai fatto? Grazie! –
@JoshPinter Abbiamo finito per utilizzare un modulo chiamato [buttercup] (https://buttercup.pw/) per memorizzare i dati dietro una password. [C'era un piccolo dibattito] (https://github.com/himynameisdave/git-labelmaker/issues/14) a riguardo perché sembrava semplice. Il progetto è [qui sopra] (https://github.com/himynameisdave/git-labelmaker) e ha un sacco di utenti attivi, quindi questa soluzione sembra aver funzionato bene per noi :) –
Interessante ... grazie per aver risposto ! Buttercup sembra una buona sostituzione di 1Password. Non ho pensato di usarlo anche per memorizzare le password. Saluti! –