Tôi hiện đang viết một ứng dụng dòng lệnh NodeJS. Ứng dụng thực hiện cuộc gọi API và trả về một số dữ liệu cho người dùng. Do đây là API công khai, người dùng yêu cầu mã thông báo API. CLI này sẽ được cài đặt trên toàn cầu trên máy của người dùng qua npm i -g super-cool-api-cli
.Lưu trữ dữ liệu an toàn trong ứng dụng Node CLI
Lần đầu tiên người dùng chạy CLI, họ được nhắc mã thông báo và sau đó tôi lưu trữ để mỗi lần sau họ chạy nó, họ không cần phải nhập nó. Tôi đã cung cấp cho người dùng một cách để thiết lập lại nó là tốt. Tôi đang lưu trữ nó trong thư mục thực tế của mô-đun CLI của tôi, mà như đã nêu được cài đặt trên toàn thế giới, và nó trông giống như sau:
fs.writeFile(__dirname+'/.token.json', JSON.stringify({ "token": token }, null, 2), 'utf8', (e)=>{
// error handling and whatever
});
Tôi đặt tên cho tập tin .token.json
, sử dụng một dấu chấm để ít nhất làm cho các tập tin ẩn theo mặc định.
Tôi đoán những gì tôi yêu cầu là nếu có một cách an toàn hơn/an toàn hơn để lưu trữ thông tin nhạy cảm trong ứng dụng dòng lệnh NodeJS, bạn sẽ chạy nhiều lần. Tôi nghĩ về việc sử dụng những thứ như environment variables nhưng chúng dường như hết hạn vào cuối quá trình.
Cân nhắc bảo mật là một kỹ năng mà tôi phần nào thiếu, nhưng rất mong muốn tìm hiểu thêm về, vì vậy cảm ơn trước vì lời khuyên của bạn.
Tôi cần phải làm một điều tương tự như bạn với ứng dụng CLI nút của tôi. Tôi nhận thấy bạn không chấp nhận bất kỳ câu trả lời nào, cuối cùng bạn đã làm gì? Cảm ơn! –
@JoshPinter Chúng tôi đã kết thúc bằng cách sử dụng một mô-đun gọi là [buttercup] (https://buttercup.pw/) để lưu trữ dữ liệu đằng sau một mật khẩu. [Có rất ít tranh luận] (https://github.com/himynameisdave/git-labelmaker/issues/14) về nó vì nó có vẻ đơn giản. Dự án là [ở đây] (https://github.com/himynameisdave/git-labelmaker) và có rất nhiều người dùng hoạt động, vì vậy giải pháp này dường như đã làm việc tốt cho chúng tôi :) –
Thú vị ... cảm ơn vì đã phản hồi lại ! Buttercup trông giống như một thay thế 1Password tốt đẹp. Không nghĩ đến việc sử dụng cốt lõi để lưu trữ mật khẩu. Chúc mừng! –