เฮามีความสุข
http://blog.csdn.net/Haohappy2004
การโจมตีแบบฉีด SQL เป็นวิธีการทั่วไปที่แฮกเกอร์ใช้ในการโจมตีเว็บไซต์ หากไซต์ของคุณไม่ได้ใช้การตรวจสอบอินพุตของผู้ใช้อย่างเข้มงวด ก็มีความเสี่ยงสูงที่จะถูกโจมตีด้วยการแทรก SQL การโจมตีแบบฉีด SQL โดยปกติจะดำเนินการโดยการส่งข้อมูลที่ไม่ถูกต้องหรือคำสั่งแบบสอบถามไปยังฐานข้อมูลของไซต์ ซึ่งอาจทำให้บันทึกในฐานข้อมูลถูกเปิดเผย เปลี่ยนแปลง หรือลบ เรามาพูดถึงวิธีการใช้งานการโจมตีแบบฉีด SQL และวิธีป้องกัน
ดูตัวอย่างนี้:
// ควรจะป้อนข้อมูล
$name = "ilia'; ลบออกจากผู้ใช้;";
mysql_query("SELECT * FROM users WHERE name='{$name}'");
เห็นได้ชัดว่าคำสั่งสุดท้ายที่ดำเนินการโดยฐานข้อมูลคือ:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
สิ่งนี้ส่งผลร้ายแรงต่อฐานข้อมูล - บันทึกทั้งหมดถูกลบไปแล้ว
แต่หากฐานข้อมูลที่คุณใช้คือ MySQL โชคดีที่ฟังก์ชัน mysql_query() ไม่อนุญาตให้คุณดำเนินการดังกล่าวโดยตรง (การดำเนินการหลายคำสั่งไม่สามารถทำได้ในบรรทัดเดียว) คุณจึงวางใจได้ หากฐานข้อมูลที่คุณใช้คือ SQLite หรือ PostgreSQL และรองรับคำสั่งดังกล่าว คุณจะเผชิญกับภัยพิบัติ