SQL Injection คือ การแทรกคำสั่ง SQL เข้าไปในระบบต่างๆ ของโปรแกรมเรา ทำให้การ Query หรือทำงานไม่ถูกต้องนั่นเอง โดยอาจจะเป็นการโจมตี หรือการกระทำจากผู้ไม่หวังดี ที่ต้องการทำให้โปรแกรมนั่นเกิดการเสียหาย
การป้องกัน
ดังนั้นการป้องกันของโปรแกรมที่ดี ก็ควรมีการป้องกันข้อมูลทุกตัว ที่ผู้ใช้มีการใส่เข้ามา เช่น user และ password ในการ Login หรือ กล่องข้อความที่ใช้ในการค้นหา เป็นต้น
ซึ่งการตรวจสอบอย่างแรกเลยก็คือ มีการกรอก Escape Character เข้ามาไหม ก็คือ พวกอักขระพิเศษในภาษา SQL เช่น เครื่องหมาย ‘ single quote เป็นต้น ถ้าหากพบเจอว่ามีการกรอกเครื่องหมายเหล่านี้เข้ามาด้วย ก็ให้หยุดการทำงาน หรือไม่ทำงานในบรรทัดหลังจากนี้ละ หรือจะให้ทำส่วนไหนต่อก็แล้วแต่ผู้พัฒนา
เราจะใช้ PHP Built-in Function ที่ชื่อว่า mysql_real_escape_string() ในการคัดกรองเจ้าตัว Escape Character ที่ว่าใว้ก่อนหน้านี้ ซึ่งเราก็จะครอบข้อมูลที่มีการส่งเข้ามานั่นเอง
ตัวอย่างตามด้านนี้เลย
$userlogin = mysql_real_escape_string($userlogin); $passwordlogin = mysql_real_escape_string($passwordlogin);
เพียงเท่านี้ก็จะปลอดภัยจากการโจมตีที่เรียกว่า SQL Injection ได้บ้างแล้ว
แต่ก็ยังมีในการของการโจมตีอีกรูปแบบหนึ่งที่เรียกว่า Cross Site Scripting อีกนะ เอาใว้จะต่อในบทความหน้าละกันนะครับ
คอร์สต่อเนื่องที่แนะนำ HTML CSS JAVASCRIPT
ความเห็นล่าสุด