แอปต้องรองรับผู้ใช้คีย์บอร์ดและโปรแกรมอ่านหน้าจอโดยรักษาลำดับโฟกัส จึงวินิจฉัยว่า ในกรณีศึกษา บริษัทพบว่าเว็บแอปพลิเคชันเกิด SQL Injection Attack เนื่องจากการนำข้อมูลจากผู้ใช้มาต่อเข้าใน SQL Query โดยตรง วิธีแก้ไขที่ถูกต้องคืออะไร

เข้ารหัส SQL Query ด้วย Base64
ไม่รับข้อมูลจากผู้ใช้อีกต่อไป
ตรวจสอบเฉพาะความยาวของข้อมูลที่รับเข้าไป
ใช้ Prepared Statements หรือ Parameterized Queries เพื่อแยกโค้ด SQL จากข้อมูล

เฉลยอธิบาย

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

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับการพัฒนาโปรแกรมระบบงานในลักษณะ Web Application

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