SQL Injection
คือ การที่ในเวปมีการรับข้อมูลจากผู้ใช้ แล้วนำไปใช้ในการสั่งให้ฐานข้อมูลทำงาน แล้ว ผู้ใช้พยายามที่จะหลอกโปรแกรมให้ทำงานนอกเหนือจากที่เราต้องการ หรือ หลอกให้โปรแกรมทำงานโดยผ่านการตรวจสอบเงื่อนไขบางอย่าง <h4>สาเหตุ:</h4>ไม่ได้ทำการตรวจสอบข้อมูลที่ผู้ใช้ใส่เข้ามาก่อนการนำไปใช้งาน เช่น ตอ้งการให้ใส่ password ซึ่งมี ส่วนที่ใช้ตรวจสอบ password ดังนี้
Query = “SELECT * FROM product WHERE Password=’$input’”;
แต่ผู้ใช้ทำการใส่ ข้อมูลเป็น a’ or 1=1–
ดังนั้น query ที่ได้จะเป้น
Query = “SELECT * FROM product WHERE Password=’a’ or 1=1–’”;
จะเห็นว่าเมื่อนำไช้งานแล้ว จะสามารถเรียกดูข้อมูลได้เสมอ เนื่องจาก 1=1 เป็นจริง <h4>อันตราย:</h4>ผู้ใช้สามารถที่จะเรียกดู หรือแก้ไขฐานข้อมูลได้อย่างอิสระ <h4>วิธีป้องกัน:</h4>ทำการตรวจสอบข้อมูลก่อนนำไปใช้ว่ามีลักษณะตรงตามที่ต้องการหรือไม่ และทำการ encode ตัวอักษรที่รับมาเสมอ <h4>ตัวอย่างช่องโหว่</h4><table border="1" cellspacing="0" cellpadding="2" bordercolor="#ff651a"><tbody>
Nessus ID
Name
วิธีแก้ไข
</tbody></table>
ได้ความรู้เยอะเลย
ดีมากเลยครับ