ENVeil
Giấu thông tin bí mật trong .env khỏi sự nhòm ngó của AI.
Các công cụ AI như Claude Code, Copilot và Cursor có thể đọc file trong thư mục dự án của bạn, khiến file .env dễ bị lộ bí mật. ENVeil giải quyết vấn đề này bằng cách đảm bảo các bí mật không bao giờ tồn tại trên đĩa dưới dạng văn bản thuần, mà chỉ là các tham chiếu tượng trưng; các giá trị thực được lưu trong kho mã hóa cục bộ và được chèn trực tiếp vào ứng dụng.
Dự án này lấy cảm hứng từ giải pháp của Filip Hric, nhưng hoạt động một cách độc lập mà không cần dịch vụ bên thứ ba.
Cách hoạt động
File .env của bạn có thể trông như sau:
DATABASE_URL=ev://database_url
STRIPE_KEY=ev://stripe_key
PORT=3000
Khi chạy enveil run -- npm start, nó sẽ:
- Yêu cầu mật khẩu chính của bạn.
- Dùng Argon2id để tạo khóa AES 256-bit.
- Giải mã kho cục bộ với AES-256-GCM.
- Giải quyết mọi tham chiếu
ev://. - Xóa khóa và mật khẩu khỏi bộ nhớ.
- Chạy ứng dụng con với các giá trị đã được chèn vào môi trường.
Kho lưu trữ là một nhị phân và không thể phân biệt với dữ liệu ngẫu nhiên mà không có mật khẩu chính.
Cài đặt
Qua cargo
cargo install enveil
Từ mã nguồn
Yêu cầu Rust 1.70+.
git clone https://github.com/greatscott/enveil
cd enveil
cargo build --release
Cài đặt binary đã biên dịch vào vị trí trên PATH của bạn.
Thiết lập từng dự án
cd your-project
enveil init
Tạo thư mục .enveil/ trong thư mục hiện tại và thêm nó vào .gitignore.
Sử dụng
Khởi tạo kho
enveil init
Điều này tạo ra một kho mã hóa trống và yêu cầu bạn đặt mật khẩu chính.
Thêm bí mật
enveil set some_database_url
# nhập: Giá trị cho 'database_url'
Giá trị được nhập một cách tương tác.
Tham chiếu bí mật trong .env
DATABASE_URL=ev://some_database_url
MY_API_KEY=ev://stripe_key
PORT=3000
Chạy ứng dụng của bạn
enveil run -- npm start
Các lệnh khác
enveil list # liệt kê tên các khóa
Xác minh bảo mật
Chạy tất cả các bài kiểm tra tự động
cargo test
Kiểm tra xem bí mật có bị ghi ra đĩa dưới dạng văn bản thuần hay không, các lỗi mật khẩu sai, xử lý mã hóa bị can thiệp, và các tham chiếu không được giải quyết.