في مجال تطوير البرمجيات ، فإن منع هجمات حقن SQL أمر بالغ الأهمية. على الرغم من أن استعلامات SQL المعلمة هي أفضل طريقة لتنظيف المدخلات ، إلا أن بعض المطورين لا يزالون يستخدمون آلية الدفاع التي تهرب من عروض الأسعار المفردة وتغلف مدخلات المستخدم في علامات اقتباس مفردة كبديل.
تقنية الهروب المعيبة
تتضمن الطريقة استبدال أي علامات اقتباس مفردة في إدخال المستخدم مع علامات اقتباس مفردة مزدوجة وتجميع السلسلة بأكملها في عروض أسعار واحدة:
sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"
مبدأ هذه التقنية هو أن أي عروض أسعار فردية التي يدخلها المستخدم يتم تحييدها بشكل فعال لمنع السلسلة من الإنهاء. لذلك ، فإن أي حرف آخر ، مثل Semicolon أو علامة النسبة المئوية ، يصبح جزءًا من السلسلة ولا يتم تنفيذه كأمر.
تعرض الحقن
]ومع ذلك ، لا يمكن لهذه التقنية التعامل مع الحالات التي قد تحتوي فيها إدخال المستخدم نفسه على علامات اقتباس واحدة مزدوجة. في هذه الحالة ، ستنتهي السلسلة ويمكن تنفيذ بقية المدخلات كأوامر SQL.
مثال على الإدخال
لتوضيح ذلك ، فكر في إدخال المستخدم التالي:
'SensitiveData' HAVING AMOUNT>2000 OR ''=''
بعد التنفيذ ، سيصبح الرمز:
SELECT * FROM ACCOUNT WHERE NAME='SensitiveData' HAVING AMOUNT>2000 OR ''=''
هذا المدخلات يضخ بنجاح البند أو في استعلام SQL ، متجاوزًا التنظيف المتوقع.
اعتبارات أخرى
من المهم ملاحظة أن هناك نقاط ضعف أخرى في تقنية الهروب هذه ، بما في ذلك:
أفضل الممارسات
لا تعتمد على تقنيات تنظيف المدخلات المؤقتة ، اتبع أفضل الممارسات لمنع حقن SQL:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3