TL; DR
มีเหตุผลหลายประการสำหรับการใช้ตัวแปรสภาพแวดล้อมแทนที่จะเป็นไฟล์กำหนดค่า แต่สองสิ่งที่พบบ่อยที่สุดที่จะมองข้ามคือค่ายูทิลิตี้ของการกำหนดค่านอกวงและเพิ่มการแยกระหว่างเซิร์ฟเวอร์แอปพลิเคชันหรือบทบาทขององค์กร แทนที่จะแสดงรายการสาเหตุที่เป็นไปได้ทั้งหมดอย่างละเอียดถี่ถ้วนฉันพูดถึงเพียงสองหัวข้อนี้ในคำตอบของฉันและสัมผัสเบา ๆ เกี่ยวกับความปลอดภัยของพวกเขา
การกำหนดค่านอกวง: การแยกความลับจากซอร์สโค้ด
หากคุณเก็บความลับทั้งหมดของคุณไว้ในไฟล์กำหนดค่าคุณต้องเผยแพร่ความลับเหล่านั้นไปยังเซิร์ฟเวอร์แต่ละเครื่อง นั่นหมายถึงการตรวจสอบความลับในการควบคุมการแก้ไขควบคู่ไปกับรหัสของคุณหรือมีที่เก็บหรือกลไกการกระจายที่แยกต่างหากสำหรับความลับ
การเข้ารหัสความลับของคุณไม่ได้ช่วยแก้ปัญหานี้ สิ่งที่จะผลักดันให้มีการลบเพียงครั้งเดียวเพราะตอนนี้คุณต้องกังวลเกี่ยวกับการจัดการและการแจกจ่ายที่สำคัญเช่นกัน!
ในระยะสั้นตัวแปรสภาพแวดล้อมเป็นวิธีการย้ายข้อมูลต่อเซิร์ฟเวอร์หรือต่อแอปพลิเคชันออกจากซอร์สโค้ดเมื่อคุณต้องการแยกการพัฒนาออกจากการดำเนินการ นี่เป็นสิ่งสำคัญอย่างยิ่งหากคุณได้เผยแพร่ซอร์สโค้ด!
เพิ่มประสิทธิภาพการแยก: เซิร์ฟเวอร์แอปพลิเคชันและบทบาท
แม้ว่าคุณจะมีไฟล์กำหนดค่าเพื่อเก็บความลับของคุณได้อย่างแน่นอนหากคุณเก็บความลับไว้ในซอร์สโค้ดคุณก็จะพบปัญหาเฉพาะเจาะจง คุณมีสาขาหรือที่เก็บแยกต่างหากสำหรับชุดความลับแต่ละชุดหรือไม่? คุณจะมั่นใจได้อย่างไรว่าชุดความลับที่ถูกต้องไปยังเซิร์ฟเวอร์ที่ถูกต้องได้อย่างไร หรือคุณลดความปลอดภัยด้วยการมี "ความลับ" ที่เหมือนกันทุกที่ (หรือสามารถอ่านได้ทุกที่หากคุณมีทั้งหมดในไฟล์เดียว) และดังนั้นจึงมีความเสี่ยงมากขึ้นหากระบบควบคุมความปลอดภัยของระบบใดระบบหนึ่งล้มเหลว?
หากคุณต้องการมีความลับเฉพาะในแต่ละเซิร์ฟเวอร์หรือสำหรับแต่ละแอปพลิเคชันตัวแปรสภาพแวดล้อมจะจัดการกับปัญหาในการจัดการไฟล์จำนวนมาก หากคุณเพิ่มเซิร์ฟเวอร์แอปพลิเคชันหรือบทบาทใหม่คุณไม่จำเป็นต้องสร้างไฟล์ใหม่หรืออัปเดตไฟล์เก่า: คุณเพียงแค่อัพเดตสภาพแวดล้อมของระบบที่เป็นปัญหา
พรากจากความคิดเกี่ยวกับความปลอดภัย
ในขณะที่การสำรวจอย่างละเอียดเกี่ยวกับความปลอดภัยของเคอร์เนล / หน่วยความจำ / ไฟล์อยู่นอกขอบเขตสำหรับคำตอบนี้เป็นสิ่งที่ควรค่าแก่การชี้ให้เห็นว่าตัวแปรสภาพแวดล้อมต่อระบบมีความปลอดภัยไม่น้อยไปกว่าความลับ "เข้ารหัส" ไม่ว่าในกรณีใดระบบเป้าหมายยังคงต้องเก็บข้อมูลลับที่ถอดรหัสไว้ในหน่วยความจำในบางจุดเพื่อใช้งาน
นอกจากนี้ยังควรชี้ให้เห็นว่าเมื่อค่าถูกเก็บไว้ในหน่วยความจำที่เปลี่ยนแปลงได้ในโหนดที่กำหนดไม่มีไฟล์บนดิสก์ที่สามารถคัดลอกและโจมตีแบบออฟไลน์ได้ โดยทั่วไปถือว่าเป็นข้อได้เปรียบสำหรับความลับในหน่วยความจำ แต่ก็ไม่แน่นอน
ปัญหาของตัวแปรสภาพแวดล้อมกับเทคนิคลับการบริหารจัดการอื่น ๆ ที่เป็นจริงมากขึ้นเกี่ยวกับการรักษาความปลอดภัยและการใช้งานไม่ชอบการค้ากว่ามันเป็นเรื่องเกี่ยวกับตายตัว ไมล์สะสมของคุณอาจแตกต่างกันไป