บริษัทหนึ่งพบว่าเว็บไซต์ถูกโจมตีด้วย SQL Injection ทำให้ผู้โจมตีสามารถดึงข้อมูลจากฐานข้อมูลได้ สาเหตุหลักของช่องโหว่นี้คืออะไร
กการไม่ตรวจสอบหรือกรองข้อมูลที่ผู้ใช้ป้อนเข้ามาก่อนนำไปประมวลผลในคำสั่ง SQL
ขการใช้โปรโตคอล HTTPS แทน HTTP ในการรับส่งข้อมูลระหว่างเซิร์ฟเวอร์และผู้ใช้
คการตั้งรหัสผ่านของฐานข้อมูลที่มีความซับซ้อนไม่เพียงพอตามมาตรฐานความปลอดภัย
งการไม่ติดตั้งโปรแกรมป้องกันไวรัสบนเครื่องเซิร์ฟเวอร์ที่ให้บริการเว็บไซต์
เฉลยอธิบาย
SQL Injection เกิดจากการที่แอปพลิเคชันไม่ทำการตรวจสอบ (Validate) หรือกรอง (Sanitize) ข้อมูลที่ผู้ใช้ป้อนเข้ามาก่อนนำไปรวมกับคำสั่ง SQL ทำให้ผู้โจมตีสามารถแทรกคำสั่ง SQL อันตรายเพื่อเข้าถึงหรือแก้ไขข้อมูลในฐานข้อมูลได้ วิธีป้องกันที่ดีที่สุดคือการใช้ Prepared Statements และการกรองข้อมูลนำเข้าอย่างเคร่งครัด