هاوهابي
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;
وكان لذلك عواقب وخيمة على قاعدة البيانات - حيث تم حذف كافة السجلات.
ولكن إذا كانت قاعدة البيانات التي تستخدمها هي MySQL، فمن حسن الحظ أن وظيفة mysql_query() لا تسمح لك بإجراء مثل هذه العمليات مباشرة (لا يمكن تنفيذ عمليات بيان متعددة في سطر واحد)، لذلك يمكنك الاطمئنان. إذا كانت قاعدة البيانات التي تستخدمها هي SQLite أو PostgreSQL وتدعم مثل هذه البيانات، فسوف تواجه كارثة.