0

ตัวตรวจสอบผลต่างของ ENV

เปรียบเทียบไฟล์ .env สองไฟล์ (staging กับ production, ก่อนกับหลังการ deploy) และดูว่าคีย์ใดถูกเพิ่ม ลบ หรือเปลี่ยนแปลง พร้อมปกปิดค่าที่ดูเหมือนข้อมูลลับโดยอัตโนมัติ

🔒 ประมวลผลทั้งหมดในเบราว์เซอร์ของคุณ — ไม่มีการอัปโหลดสิ่งใดที่คุณป้อนที่นี่

กำลังประมวลผล... 0%
กำลังแยกวิเคราะห์ทั้งสองไฟล์
กำลังคำนวณผลต่าง
กำลังปกปิดข้อมูลลับ
เสร็จสิ้น

ผลลัพธ์

การเปรียบเทียบไฟล์ .env ของ staging กับ production หรือ config ของการ deploy วันนี้กับสัปดาห์ที่แล้วด้วยสายตาคือจุดเริ่มต้นของปัญหาในระบบจริง: DATABASE_URL ที่หายไป, PORT ที่เปลี่ยนไปอย่างเงียบๆ, API key ที่ถูกเปลี่ยนหมุนในสภาพแวดล้อมหนึ่งแต่อีกสภาพแวดล้อมหนึ่งไม่ได้เปลี่ยน การวางทั้งสองไฟล์ลงในเครื่องมือเปรียบเทียบข้อความทั่วไปก็ไม่ได้ช่วยมาก — มันแสดงให้คุณเห็นว่าบรรทัดไหนต่างกัน ไม่ใช่ environment variable ใดที่เปลี่ยนจริง และมันพิมพ์ค่าลับทุกค่าอย่างโจ่งแจ้งทันทีที่คุณแชร์ผลลัพธ์กับเพื่อนร่วมทีม

เครื่องมือนี้แยกวิเคราะห์ทั้งสองไฟล์ในแบบที่ dotenv อ่านมันจริงๆ — คู่ KEY=value หนึ่งคู่ต่อบรรทัด, คอมเมนต์ # และบรรทัดว่างถูกละเว้น, ค่าในเครื่องหมายคำพูดเดี่ยวหรือคู่ถูกถอดเครื่องหมายคำพูด (โดยถอดรหัส \n เฉพาะภายในเครื่องหมายคำพูดคู่ ตามข้อกำหนดของ dotenv ทุกประการ) และยอมรับคำนำหน้า export KEY=value แบบที่ไฟล์ env ที่ถูก source ใน shell ใช้ ไฟล์แต่ละไฟล์กลายเป็นแผนที่คีย์-ค่าที่สะอาด แล้วทั้งสองแผนที่ถูกหาผลต่างโดยคีย์: ที่ปรากฏในไฟล์ A เท่านั้นคือ 'ลบ', ที่ปรากฏในไฟล์ B เท่านั้นคือ 'เพิ่ม', ที่ปรากฏทั้งสองไฟล์แต่มีค่าต่างกันคือ 'เปลี่ยนแปลง' และค่าที่เหมือนกันคือ 'ไม่เปลี่ยนแปลง' และถูกซ่อนโดยค่าเริ่มต้นเพื่อให้ตารางมุ่งเน้นที่สิ่งที่แตกต่างจริง

คุณลักษณะที่ทำให้สิ่งนี้ปลอดภัยที่จะใช้กับข้อมูลลับจริงคือการปกปิดอัตโนมัติ ทุกค่าที่แสดงในตารางผลต่างถูกตรวจสอบกับสัญญาณอิสระสองอย่าง: ชื่อคีย์ดูเหมือนข้อมูลลับหรือไม่ (การจับคู่แบบไม่แยกตัวพิมพ์เล็กใหญ่กับ KEY, SECRET, TOKEN, PASSWORD, PRIVATE หรือ CREDENTIAL) หรือค่ามีค่า Shannon entropy สูงหรือไม่ — มาตรวัดทางทฤษฎีสารสนเทศเดียวกัน (-Σ p(c)·log2(p(c)) สำหรับอักขระในค่านั้น) ที่ชี้ว่า API keys, tokens และรหัสผ่านแบบสุ่มแตกต่างทางสถิติจากคำธรรมดาแม้ชื่อคีย์จะไม่บอกใบ้ สัญญาณใดสัญญาณหนึ่งก็เพียงพอที่จะปกปิดค่าให้เหลืออักขระสองตัวแรกและสองตัวสุดท้าย คำนวณแยกอิสระสำหรับฝั่งเก่าและใหม่ของทุกแถวที่เปลี่ยนแปลง

ทุกสิ่ง — การแยกวิเคราะห์, การหาผลต่าง, การให้คะแนน entropy และการปกปิด — ทำงานทั้งหมดในเบราว์เซอร์ของคุณ; ไม่มีไฟล์ใดหรือค่าใดที่ถูกดึงออกมาจากไฟล์ถูกส่งไปที่ใดเลย นั่นคือการรับประกันที่ถูกต้องสำหรับเครื่องมือที่หน้าที่ทั้งหมดคือการดูไฟล์สองไฟล์ที่น่าจะมีข้อมูลลับจริงๆ เช่น รหัสผ่านฐานข้อมูล, API keys และรหัสผ่านเคียงข้างกัน