สเตจจิ้งดูเหมือนระบบทดสอบจนกว่าคุณจะสังเกตเห็นฐานข้อมูลโปรดักชันที่คัดลอกมา ข้อมูลรับรองอีเมลที่ใช้งานจริง และคีย์ชำระเงินในสภาพแวดล้อมของมัน ณ จุดนั้นป้ายบนแท็บก็หมดความหมาย และคำถามจริงคือการติดตั้งนี้เข้าถึงอะไรได้และใครเข้าถึงมันได้ วีพีเอ็นที่ประตูหน้าระบบไม่ได้ตอบคำถามนั้น เพราะมันจำกัดเส้นทางเดียวเข้าสู่ระบบและไม่ได้บอกอะไรเกี่ยวกับสิ่งที่ระบบทำได้ตอนออกไป เริ่มจากผู้ชมแล้วค่อยขยายออกไป

เริ่มจากผู้ชม ไม่ใช่ URL

ผู้ชมสามกลุ่มให้การออกแบบสามแบบ สภาพแวดล้อมวิศวกรรมส่วนตัวต้องการตัวตนและเส้นทาง การทดสอบยอมรับของลูกค้าต้องการบัญชีที่เป็นตัวแทนลูกค้า การสาธิตสาธารณะต้องการการเปิดเผยโดยเจตนาพร้อมการควบคุมของตัวเอง การเขียนผู้ชมไว้ก่อนป้องกันการเลื่อนไหลตามปกติที่ URL พรีวิวกลายเป็นถาวรอย่างเงียบ ๆ ทุกอย่างที่เหลือในการทบทวนขึ้นอยู่กับคำตอบนั้น

ถ้าไม่มีใครบอกชื่อผู้ชมได้ ให้ถือว่านั่นคือข้อค้นพบแรก ไม่ใช่ช่องว่างของเอกสาร

เดินผ่านประตูหน้าและพื้นผิวที่อยู่ข้างหลัง

แก้ชื่อก่อนที่จะเชื่อ URL ที่ได้รับ แล้วขอเส้นทางผู้ดูแลระบบโดยตรง

dig +short staging.example.com
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/admin

ระเบียนเพิ่มเติมมักเปิดเผยที่อยู่ต้นทางตรงที่ข้าม CDN หรือทางเข้าวีพีเอ็น ซึ่งทำให้การควบคุมที่ตั้งใจไว้กลายเป็นทางเลือก การเปลี่ยนเส้นทางบอกคุณว่าแอปคิดว่าตัวเองอยู่ที่ไหน และสคีมาหรือชื่อโฮสต์ที่ไม่คาดคิดสมควรได้รับการติดตามต่อไป การตรวจสอบเส้นทางผู้ดูแลระบบที่เป็นไปได้ควรให้ผลเป็นการปฏิเสธ ไม่ใช่หน้าเว็บ การได้ 200 บนเส้นทางผู้ดูแลระบบที่ไม่ผ่านการยืนยันตัวตนคือข้อค้นพบที่การทบทวนทั้งหมดกำลังมองหา

ตรวจสอบว่าสภาพแวดล้อมทำอะไรได้ ไม่ใช่แค่แสดงอะไร

หน้าที่ต้องเข้าสู่ระบบก็ยังถูกส่งมาพร้อมอำนาจฝั่งหลังบ้าน ถามว่าภาระงานรันภายใต้ตัวตนใด แล้วอ่านนโยบายที่ผูกอยู่กับมัน

aws sts get-caller-identity

การเรียกนั้นรายงานบัญชีและตัวตนหลักที่สภาพแวดล้อมใช้จริง ซึ่งเป็นจุดเริ่มต้นของทุกคำถามเรื่องสิทธิ์ที่ตามมา จากตรงนั้น ตรวจสอบว่าตัวตนส่งอีเมลได้ ย้ายเงินได้ อ่านความลับโปรดักชันได้ หรือเขียนข้อมูลโปรดักชันได้หรือไม่ แทนที่ข้อมูลรับรองโปรดักชันที่ใช้ร่วมกันด้วยตัวตนสเตจจิ้งที่จำกัดขอบเขต และเลือกแซนด์บ็อกซ์ของผู้ให้บริการเมื่อมีอยู่ บัญชีทดสอบที่เรียกเก็บเงินจากบัตรจริงได้คือระบบโปรดักชันที่มีชื่อโฮสต์ต่างกัน

รักษาขอบเขตไว้หลังจากการทบทวนสิ้นสุด

สภาพแวดล้อมไม่ได้ถูกทำให้ปลอดภัยด้วยการตรวจสอบครั้งเดียว แต่ด้วยความเป็นเจ้าของที่อยู่รอดผ่านการเปลี่ยนแปลงบุคลากร กำหนดว่าใครถอดการเข้าถึงรีเซ็ตข้อมูลทดสอบและปลดระวางการติดตั้ง และให้พรีวิวมีวันหมดอายุที่ต้องมีคนต่ออายุ การแยกโดดช่วยได้ก็ต่อเมื่อสิ่งที่แยกไว้ได้รับการดูแล ตรวจเส้นทางเดิมอีกครั้งหลังรุ่นถัดไป เพราะฟีเจอร์แฟล็กหรือการเชื่อมต่อใหม่คือวิธีที่เส้นทางที่ถูกปฏิเสธกลายเป็นเส้นทางที่เปิด

ยอมรับการออกแบบด้วยเวิร์กโฟลว์ที่อนุญาตและอีกอันที่ถูกปฏิเสธ ถ้าทั้งคู่ทำงานตามเอกสาร ขอบเขตนั้นมีอยู่ ถ้าทดสอบแค่เส้นทางที่มีความสุข นั่นคือความหวัง

บทความที่เกี่ยวข้อง