ฉันสามารถป้องกันการฉีด SQL ด้วยการหลีกเลี่ยงการอ้างคำพูดเดียวและป้อนข้อมูลผู้ใช้โดยรอบด้วยคำพูดเดียว?
ฉันรู้ว่าการสืบค้น SQL แบบแปรผันเป็นวิธีที่ดีที่สุดในการฆ่าเชื้ออินพุตของผู้ใช้เมื่อสร้างเคียวรีที่มีการป้อนข้อมูลของผู้ใช้ แต่ฉันสงสัยว่าเกิดอะไรขึ้นกับการป้อนข้อมูลผู้ใช้และหลีกเลี่ยงคำพูดเดี่ยว ๆ นี่คือรหัส: sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'" เครื่องหมายคำพูดเดี่ยวใด ๆ ที่ผู้ใช้ป้อนจะถูกแทนที่ด้วยเครื่องหมายคำพูดเดี่ยวสองชั้นซึ่งจะช่วยลดความสามารถของผู้ใช้ในการวางสตริงดังนั้นสิ่งอื่น ๆ ที่พวกเขาอาจพิมพ์เช่นอัฒภาคเครื่องหมายเปอร์เซ็นต์และอื่น ๆ ทั้งหมดจะเป็นส่วนหนึ่งของสตริงและ ไม่ได้ดำเนินการจริง ๆ เป็นส่วนหนึ่งของคำสั่ง เรากำลังใช้ Microsoft SQL Server 2000 ซึ่งฉันเชื่อว่า single-quote เป็นตัวคั่นสตริงเท่านั้นและวิธีเดียวที่จะหลีกเลี่ยงตัวคั่นสตริงดังนั้นจึงไม่มีวิธีดำเนินการใด ๆ กับผู้ใช้ประเภทใด ๆ ฉันไม่เห็นวิธีใดที่จะเปิดการโจมตีด้วยการฉีด SQL เพื่อต่อต้านสิ่งนี้ แต่ฉันรู้ว่าถ้านี่เป็นกระสุนที่ดูเหมือนกับฉันคนอื่นจะคิดว่ามันแล้วและมันจะเป็นเรื่องธรรมดา เกิดอะไรขึ้นกับรหัสนี้ มีวิธีการโจมตี SQL injection ผ่านเทคนิคการฆ่าเชื้อนี้หรือไม่ ตัวอย่างอินพุตของผู้ใช้ที่ใช้ประโยชน์จากเทคนิคนี้จะเป็นประโยชน์ UPDATE: ฉันยังไม่รู้วิธีการเปิดใช้การโจมตี SQL injection …