PDA

View Full Version : SQL INJECTION



grassho
13-10-2006, 01:33 AM
SQL Injection
คือ การที่ในเวปมีการรับข้อมูลจากผู้ใช้ แล้วนำไปใช้ในการสั่งให้ฐานข้อมูลทำงาน แล้ว ผู้ใช้พยายามที่จะหลอกโปรแกรมให้ทำงานนอกเหนือจากที่เราต้องการ หรือ หลอกให้โปรแกรมทำงานโดยผ่านการตรวจสอบเงื่อนไขบางอย่าง
สาเหตุ:
ไม่ได้ทำการตรวจสอบข้อมูลที่ผู้ใช้ใส่เข้ามาก่อนการนำไปใช้งาน เช่น ตอ้งการให้ใส่ 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 เป็นจริง
อันตราย:
ผู้ใช้สามารถที่จะเรียกดู หรือแก้ไขฐานข้อมูลได้อย่างอิสระ
วิธีป้องกัน:
ทำการตรวจสอบข้อมูลก่อนนำไปใช้ว่ามีลักษณะตรงตามที่ต้องการหรือไม่ และทำการ encode ตัวอักษรที่รับมาเสมอ

Ryhme
02-11-2006, 08:10 AM
คุณ Travis มีการยกตัวของการทำ SQL Injection หรือป่าวคับ

คือผมลองทำแล้วนะคับแต่ยังไม่ค่อยเข้าใจ เท่าไรเพราะผมมีใหม่หัดทำ

อย่างงัยก็ ช่วยเขียน บทความแบบที่ มีตัวอย่างเวป site ไรแบบนี้

ปล ฝากไว้ด้วยนะคับ