ทีมต้องทดสอบเส้นทางสำคัญและกรณีล้มเหลวก่อนปล่อยเวอร์ชันใหม่ จึงวินิจฉัยว่า เว็บแอปพลิเคชันมีปัญหา Cross-Site Scripting (XSS) ซึ่งทำให้ผู้โจมตีสามารถฝัง Script อันตรายในหน้าเว็บได้ สาเหตุหลักและวิธีป้องกันที่ถูกต้องคืออะไร
กสาเหตุคือไม่มี HTTPS และวิธีป้องกันคือเปิดใช้ SSL Certificate
ขสาเหตุคือนำข้อมูลจากผู้ใช้ไปแสดงผลโดยไม่ Sanitize และวิธีป้องกันคือ Encode/Escape ข้อมูลก่อนแสดงผลและใช้ Content Security Policy
คสาเหตุคือไม่มี CSRF Token และวิธีป้องกันคือเพิ่ม Token ในทุก Form
งสาเหตุคือ SQL Query ไม่ได้ใช้ Parameterized Query และวิธีป้องกันคือใช้ Prepared Statements
เฉลยอธิบาย
XSS เกิดจากการนำข้อมูลที่ผู้ใช้ป้อนไปแสดงผลในหน้าเว็บโดยตรงโดยไม่ Sanitize ทำให้ผู้โจมตีฝัง Script มาได้ วิธีป้องกันหลักคือ Output Encoding/Escaping (แปลงอักขระพิเศษ เช่น < > เป็น HTML Entity) และกำหนด Content Security Policy ตัวเลือก A เป็นเรื่อง Transport Security, ตัวเลือก C เป็นการป้องกัน SQL Injection, ตัวเลือก D เป็นการป้องกัน CSRF ซึ่งคนละการโจมตีกัน