Trình kiểm tra khác biệt ENV
So sánh hai tệp .env (dàn dựng với sản xuất, trước và sau khi triển khai) và xem chính xác khóa nào đã được thêm, xóa hoặc thay đổi, với các giá trị trông bí mật được ẩn tự động.
kết quả
So sánh tệp .env dàn dựng với bản sản xuất hoặc cấu hình triển khai ngày nay với cấu hình của tuần trước, bằng mắt thường, có thể thấy tình trạng ngừng hoạt động thực sự bắt đầu như thế nào: thiếu DATABASE_URL, một PORT đã thay đổi một cách lặng lẽ, một khóa API được xoay vòng trong một môi trường nhưng không phải trong môi trường khác. Việc dán cả hai tệp vào một khác biệt văn bản chung cũng không giúp được gì nhiều - nó cho bạn thấy dòng nào khác nhau, không phải biến môi trường nào thực sự đã thay đổi và nó vui vẻ in mọi giá trị bí mật một cách rõ ràng ngay khi bạn chia sẻ kết quả đầu ra với đồng đội.
Công cụ này phân tích cả hai tệp theo cách dotenv thực sự đọc chúng - một cặp KEY=value trên mỗi dòng, # nhận xét và dòng trống bị bỏ qua, các giá trị được trích dẫn đơn hoặc kép không được trích dẫn (với \n chỉ không được thoát trong dấu ngoặc kép, chính xác như quy ước dotenv chỉ định) và tiền tố xuất KEY=value tùy chọn được chấp nhận theo cách các tệp env có nguồn gốc shell sử dụng nó. Mỗi tệp sẽ trở thành một bản đồ khóa-giá trị rõ ràng và sau đó hai bản đồ này khác nhau theo khóa: chỉ hiện diện trong Tệp A bị 'xóa', chỉ hiện diện trong Tệp B là 'được thêm', hiện diện trong cả hai với một giá trị khác nhau là 'đã thay đổi' và các giá trị giống hệt nhau là 'không thay đổi' và bị ẩn theo mặc định để bảng vẫn tập trung vào những gì thực sự khác biệt.
Tính năng giúp điều này thực sự an toàn khi sử dụng với các bí mật thực sự là tính năng tạo mặt nạ tự động. Mọi giá trị hiển thị trong bảng khác biệt đều được kiểm tra dựa trên hai tín hiệu độc lập: tên khóa của nó có giống bí mật không (khớp không phân biệt chữ hoa chữ thường với KEY, SECRET, TOKEN, PASSWORD, PRIVATE hoặc CREDENTIAL) hay bản thân giá trị đó có entropy Shannon cao — thước đo lý thuyết thông tin tương tự (-Σ p(c)·log2(p(c)) trên các ký tự của giá trị) gắn cờ các khóa API, mã thông báo và mật khẩu ngẫu nhiên khác biệt về mặt thống kê so với các từ thông thường ngay cả khi tên khóa không đưa ra gợi ý. Một trong hai tín hiệu đều đủ để che giấu một giá trị ở hai ký tự đầu tiên và cuối cùng, được tính toán độc lập cho mặt cũ và mặt mới của mỗi hàng đã thay đổi.
Mọi thứ — phân tích cú pháp, phân biệt, tính điểm entropy và che giấu — chạy hoàn toàn trong trình duyệt của bạn; cả tập tin lẫn bất kỳ giá trị nào được trích xuất từ chúng đều không được gửi đi bất cứ đâu. Đó là sự đảm bảo phù hợp cho một công cụ có toàn bộ công việc là xem xét hai tệp có khả năng chứa thông tin xác thực cơ sở dữ liệu thực, khóa API và mật khẩu cạnh nhau.