Hacking

การทำ SQL Injection และการป้องกัน

SQL Injection ช่องโหว่ที่มีมานานมากกว่า 10 ปีโดยถูกพูดถึง ในที่สาธารณะครั้งแรกในปี 1998 โดยหนังสือ Phrack Magazine แต่ช่องโหว่นี้ก็ยังมีให้เห็นกันมากมายในปัจจุบันทั้งที่ประเทศไทย(ซึ่งมีเยอะมาก)และต่างประเทศ

แต่ช่องโหว่ SQL Injection นั้นไม่ใช่แค่ที่จะสามารถข้ามหน้า Login โดยที่ไม่ต้องใส่รหัสผ่านได้เท่านั้น แต่ยังสามารถเข้าถึงฐานข้อมูลเราได้อีกด้วย

วิดีโอสาธิตการทำ SQL Injection ข้ามหน้า Login และการป้องกัน

ไฟล์ที่ใช้ในคลิป: sql.rar

จากในคลิปเราจะเห็นว่าเมื่อเราใส่รหัสผ่านลงไปคำสั่งของ MySQL จะทำให้มันเป็นจริง จึงทำให้สามารถเข้าโดยไม่ใส่รหัสผ่านได้ เราจึงต้องใช้ “mysql_real_escape_string” มากรองตัวอักขระพิเศษในคำสั่ง SQL เพื่่อให้ได้คำสั่ง SQL ที่ปลอดภัยสำหรับการใช้งาน

MySQL  คือ

โปรแกรม  Opensource ที่มีไว้สำหรับระบบจัดการฐานข้อมูล ที่พัฒนาโดยบริษัท MySQL AB มีหน้าที่เก็บข้อมูลอย่างเป็นระบบ รองรับคำสั่ง SQL เป็นเครื่องมือสำหรับเก็บข้อมูล

SQL Injection คือ

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

mysql_real_escape_string คือ

เป็นฟังก์ชันสำหรับกรองตัวอักขระพิเศษในคำสั่ง SQL เช่น เครื่องหมาย ‘ เป็นต้น เพื่่อให้ได้คำสั่ง sql ที่ปลอดภัยสำหรับการ query โดยจะมีการยกเว้นเครื่องหมาย % และ _ ซึ่งมีใช้ในคำสั่ง sql