ในสถานการณ์ที่ระบบสารสนเทศถูกโจมตีด้วย SQL Injection ข้อใดคือวิธีการป้องกันที่ถูกต้องและมีประสิทธิภาพสูงสุดในระดับการพัฒนาโปรแกรม

ใช้ Parameterized Queries หรือ Prepared Statements แทนการต่อ SQL String โดยตรง
จำกัดความยาว Input ของผู้ใช้ไม่เกิน 50 ตัวอักษร
ติดตั้ง Firewall เพิ่มเติมหน้าเซิร์ฟเวอร์
เปลี่ยนชื่อตารางฐานข้อมูลให้ยากต่อการเดา

เฉลยอธิบาย

Parameterized Queries / Prepared Statements คือการป้องกัน SQL Injection ที่มีประสิทธิภาพสูงสุดในระดับโค้ด โดยแยก SQL Command ออกจากข้อมูลที่ผู้ใช้ป้อน ทำให้ข้อมูลถูกส่งเป็น Parameter ไม่ใช่ส่วนหนึ่งของ SQL ตัวเลือก A แยกคำสั่งออกจากข้อมูลที่ป้อน จึงป้องกัน injection ที่ต้นเหตุ ส่วน B และ D เป็นการพรางหรือจำกัดที่ข้ามได้ และ C เป็นมาตรการเสริมที่ไม่แทนการเขียน query อย่างปลอดภัย

ข้อสอบอื่นในวิชาการพัฒนาระบบสารสนเทศ วิเคราะห์ ออกแบบ และการเขียนโปรแกรมคอมพิวเตอร์

ดูข้อสอบวิชานี้ทั้งหมด →