แอปต้องรองรับผู้ใช้คีย์บอร์ดและโปรแกรมอ่านหน้าจอโดยรักษาลำดับโฟกัส จึงวินิจฉัยว่า ในกรณีศึกษา บริษัทพบว่าเว็บแอปพลิเคชันเกิด 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 ผิดเพราะการตรวจสอบความยาวไม่เพียงพอ