ASP.NET Data Access General FAQ: SQL injection คืออะไร และวิธีการป้องกัน
-
21 พฤษภาคม 2555 2:48ผู้ดูแลASP.NET Data Access General FAQ: SQL injection คืออะไร และวิธีการป้องกัน
Supa Sethasiripong [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
ตอบทั้งหมด
-
21 พฤษภาคม 2555 2:55ผู้ดูแล
SQL injection ไม่ปลอดภยัต่อการแก้ไขและรันคำสั่ง SQL command
โดยส่วนใหญ่ SQL injection มักจะ replace หรือ add ไปที่ queries ที่ได้ทำการ execute ไปแล้ว
และเมื่อมีการเชื่อมต่อ string เพื่อสร้าง SQL statement โดยการป้อนข้อมูลจาก user
ก็อาจจะทำให้เกิด SQL injection
ยกตัวอย่างเช่น SQL statement ที่ใช้ในการ verify password ของ usersql = "select * from UserInfo where password='" + password + "'";
โดยป้อนข้อมูลต่อไปนี้เพื่อหลีกเลี่ยงการตรวจสอบ password
password = "' or 1=1 --";
ในบางกรณี user อาจใช้คำสั่งตัวคั่น (; ) เพื่อเพิ่ม SQL command ในการป้อนข้อมูลของ user เช่นในตัวอย่างนี้
; DROP TABLE
และเพื่อหลีกเลี่ยงการเกิด SQL injection การใช้คำสั่ง parameter ใน SQL queries จะช่วยทำการ validate การป้อนข้อมูลของ user
โดยใน single quotation จะแสดงถึงรูปแบบอื่นที่ได้ผ่านการตรวจสอบแล้ว โดยตัวอย่างนี้จะไม่ทำให้เกิด SQL injection แม้ว่าจะใช้ password ไม่ถูกต้องก็ตาม
Supa Sethasiripong [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- ทำเครื่องหมายเป็นคำตอบโดย supa_sModerator 22 พฤษภาคม 2555 3:13