لقد تم تشغيل حقن SQL من قبل ما يسمى بأساتذة القرصنة في تلك المستويات، وقد وجد أن معظم عمليات اختراق المتسللين تعتمد الآن على حقن SQL. مرحبًا، من الذي يجعل من السهل البدء؟ حسنًا، دعنا لا نتحدث عن هذا الهراء، الآن أنا لنبدأ بقول ماذا لو أن كتابة برنامج عام لمكافحة حقن SQL لا يعدو أن تكون طلبات http العامة مجرد الحصول على ونشر، لذلك طالما قمنا بتصفية جميع الأحرف غير القانونية في المنشور أو معلومات المعلمة في طلب الحصول على الملف، فيمكننا ذلك الحكم من خلال تنفيذ تصفية معلومات طلب http، هل يخضع لهجوم حقن SQL؟
يكون طلب الحصول الذي تم تمريره بواسطة IIS إلى asp.dll على شكل سلسلة. عندما يتم تمرير البيانات إلى Request.QueryString، سيقوم محلل asp بتحليل معلومات Request.QueryString، ثم يفصل محتويات كل صفيف وفقًا لـ. "&" يتم اعتراض البيانات على النحو التالي:
أولاً، نحدد أن الطلب لا يمكن أن يحتوي على الأحرف التالية:
'|و|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate |char|declare
every يتم فصل الأحرف بـ "|"، ومن ثم نحدد Request.QueryString الذي تم الحصول عليه، ويكون الكود المحدد كما يلي:
dim sql_injdata
SQL_injdata = "'|و|exec|إدراج|تحديد|حذف|تحديث|عدد|*|%|chr|منتصف|رئيس|اقتطاع|شار|إعلان"
SQL_inj = تقسيم (SQL_Injdata، "|")
إذا Request.QueryString<>"" إذن
لكل SQL_Get في Request.QueryString
بالنسبة لـ SQL_Data=0 إلى Ubound(SQL_inj)
إذا instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 ثم
Response.Write "< لغة النص =****> تنبيه ("مطالبة نظام World Movie Alliance SQL العالمي المضاد للحقن ↓nn يرجى عدم تضمين أحرف غير قانونية في المعلمات ومحاولة الحقن!")؛ History.back(- 1)</ البرنامج النصي>"
الاستجابة.نهاية
نهاية إذا
التالي
التالي
End If
بهذه الطريقة، قمنا بتنفيذ اعتراض الحقن لطلبات الحصول، لكننا نحتاج أيضًا إلى تصفية طلبات النشر، لذلك يتعين علينا الاستمرار في النظر في request.form، الموجود أيضًا في شكل مصفوفة، نحتاج فقط إلى ذلك إصدار حكم آخر. الكود هو كما يلي:
إذا كان Request.Form<>"" ثم
لكل Sql_Post في Request.Form
بالنسبة لـ SQL_Data=0 إلى Ubound(SQL_inj)
إذا instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 ثم
Response.Write "<لغة النص=****>تنبيه('يطالب نظام World Movie Alliance SQL العالمي المضاد للحقن ↓nn يرجى عدم تضمين أحرف غير قانونية في المعلمات ومحاولة الحقن! nnHTTP://www.521movie. com');history.back(-1)</Script>"
الاستجابة.نهاية
نهاية إذا
التالي
التالي
انتهى إذا
موافق، لقد انتهيت من تنفيذ اعتراض المعلومات لطلبات الحصول والنشر، ما عليك سوى الرجوع إلى هذه الصفحة قبل فتح ملف قاعدة بيانات مثل conn.asp. يمكنك الاستمرار في تطوير برنامجك دون القلق بشأن ما إذا كنت ستتعرض للهجوم عن طريق حقن SQL مرة أخرى. أليس كذلك؟