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