Soft PHP MVC ถอด Seeder ค่าเริ่มต้น ป้องกันช่องโหว่
เฟรมเวิร์ก Soft PHP MVC ตัดสินใจถอดระบบแอดมินเซดเดอร์ที่มีรหัสผ่านเริ่มต้นออก ป้องกันการโจมตีจากบอตอัตโนมัติและปัญหาการตั้งค่าความปลอดภัยผิดพลาด

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- Soft PHP MVC ถอดแอดมินเซดเดอร์ค่าเริ่มต้นออกเพื่อความปลอดภัย
- ระบบเปลี่ยนเส้นทางไปหน้าลงทะเบียนเมื่อยังไม่มีผู้ใช้ในระบบ
- FirstUserSetupService ทำหน้าที่สร้างบัญชีแรกและจะปิดการทำงานหลังติดตั้ง
เฟรมเวิร์กพัฒนาเว็บแอปพลิเคชันหลายตัวมักมาพร้อมกับข้อมูลตัวอย่างสำหรับผู้ดูแลระบบหรือแอดมินเซดเดอร์ ซึ่งกำหนดชื่อผู้ใช้และรหัสผ่านเริ่มต้นเอาไว้ เช่น admin@example.com และ password แม้จะสะดวกต่อการพัฒนาในขั้นตอนแรก แต่ช่องทางนี้กลับกลายเป็นจุดเริ่มต้นของการโจมตีหลักบนระบบจริงที่ถูกหลงลืม หากมีการเรียกใช้งานเซดเดอร์ดังกล่าวบนสภาพแวดล้อมจริงและไม่มีการเปลี่ยนรหัสผ่าน ระบบทั้งหมดจะตกอยู่ในความเสี่ยงทันทีเมื่อมีผู้ไม่หวังดีทราบข้อมูลชุดนี้
ปัญหาดังกล่าวไม่ใช่เพียงความเสี่ยงในเชิงทฤษฎี เนื่องจากข้อมูลประจำตัวเริ่มต้นถูกจัดให้อยู่ในกลุ่ม 10 อันดับแรกของช่องโหว่ตามมาตรฐาน OWASP ในหมวด A07:2021 ด้านการตั้งค่าความปลอดภัยผิดพลาด บอตอัตโนมัติจะคอยทด S สอบชุดข้อมูลที่พบบ่อย เช่น admin/admin, admin/password และ root/root กับทุกแอปพลิเคชันที่เปิดใช้งาน การมีเซดเดอร์ที่ฝังรหัสผ่านตายตัวจึงเปรียบเสมือนการเปิดประตูต้อนรับผู้โจมตีโดยตรง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
การเปลี่ยนผ่านจากความปลอดภัยที่พึ่งพาการกระทำของมนุษย์ มาสู่สถาปัตยกรรมที่จำกัดความเสี่ยงด้วยตัวระบบเองถือเป็นแนวทางสำคัญในการพัฒนาซอฟต์แวร์สมัยใหม่ การตัดฟังก์ชันที่อาศัยความหวังว่าผู้ใช้จะเปลี่ยนรหัสผ่านออกไป ช่วยลดพื้นที่ความเสียหายที่อาจเกิดขึ้นจากความผิดพลาดในการตั้งค่าระบบเบื้องต้นได้ตั้งแต่ก่อนเริ่มใช้งานจริง
เพื่อแก้ปัญหานี้ ใน Soft PHP MVC จึงมีการถอดแอดมินเซดเดอร์ออกไปอย่างสมบูรณ์ หน้าจอเข้าสู่ระบบจะถูกเปลี่ยนเส้นทางไปยังหน้าลงทะเบียนบัญชีเริ่มต้นทันทีหากตรวจไม่พบข้อมูลผู้ใช้งานภายในฐานข้อมูล การบันทึกบัญชีแรกนี้ถูกควบคุมความปลอดภัยไว้อย่างเข้มงวดในระดับเซิร์ฟเวอร์ โดยหากมีผู้ใช้งานอยู่ในระบบแล้ว คำขอผ่านเส้นทาง POST จะถูกปฏิเสธทันที และไม่สามารถสร้างบัญชีที่สองผ่านกระบวนการดังกล่าวได้แม้จะส่งคำขอโดยตรงก็ตาม
"In Soft PHP MVC, il seeder admin e stato rimosso. Il login ora reindirizza alla pagina di registrazione iniziale quando non esiste alcun utente nel database."
Dev.to
กระบวนการเปิดใช้งานครั้งแรกของแอปพลิเคชันมีลำดับขั้นตอนที่ชัดเจนดังนี้:
- ระบบตรวจสอบว่ามีบัญชีผู้ใช้อยู่ในฐานข้อมูลหรือไม่
- หากไม่มีระบบจะนำทางไปยังหน้าลงทะเบียนบัญชีแรก
- บริการ FirstUserSetupService ดำเนินการสร้างข้อมูลพร้อมตรวจสอบความถูกต้องและแฮชรหัสผ่าน
- เส้นทางถูกปิดกั้นไม่ให้สร้างบัญชีผู้ดูแลระบบซ้ำได้อีก
งานจัดการกระบวนการติดตั้งครั้งแรกนี้อยู่ภายใต้ความรับผิดชอบของคลาส FirstUserSetupService ซึ่งมาพร้อมกับชุดทดสอบยูนิตเทสเฉพาะตัว ส่วนประกอบดังกล่าวถูกออกแบบมาเพื่อใช้งานเพียงครั้งเดียวในการติดตั้งระบบครั้งแรกเท่านั้น หลังจากนั้นคอมโพเนนต์นี้จะเปลี่ยนสถานะเป็นไม่ทำงาน แต่การทำงานเพียงครั้งเดียวนี้ต้องไร้ที่ติเพราะเป็นตัวกำหนดว่าใครจะถือสิทธิ์ควบคุมระบบทั้งหมด
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น