اكتب برنامجًا عامًا لمكافحة الحقن ASP لتحديد المدونة من PH4Studio
اكتب برنامجًا شائعًا لمكافحة الحقن ASP للكلمات الرئيسية
مصدر
تم لعب حقن SQL من قبل هؤلاء المتسللين المزعومين على مستوى المبتدئين. لقد وجدت أن معظم عمليات اقتحام المتسللين تعتمد الآن على حقن SQL.
، للأسف ، من الذي جعل هذا من السهل البدء؟ حسنًا ، لم أعد أتحدث هراء ، لقد بدأت الآن في القول إذا كنت أكتب برنامجًا عامًا لمكافحة الحقن SQL
طلبات HTTP العامة ليست أكثر من الحصول على ونشرها ، طالما أننا نرشح كل ما بعد أو الحصول على معلومات معلمة الطلب في الملف
الشخصيات غير القانونية كافية ، حتى نتمكن من استخدام مرشح معلومات طلب HTTP لتحديد ما إذا كان يخضع لهجوم حقن SQL.
تم تمرير IIS إلى ASP.DLL في شكل سلسلة ، عند تمريرها إلى طلب.
ستقوم ASP Parser بتحليل معلومات REQUEST.AqueString ، ثم تقسيم البيانات في كل صفيف وفقًا لـ "&"
لذلك يتم اعتراضها على النحو التالي
أولاً ، نحدد أن الطلب لا يمكن أن يحتوي على الأحرف التالية
'| و | exec | إدراج | حدد | حذف | تحديث | العد |
يتم فصل كل حرف بـ "|" ، ثم نحكم على الطلب.
الرمز المحدد كما يلي
dimsql_injdata
sql_injdata = "'| و | exec | insert | select | delete | update | count |*| ٪ | chr | mast | truncate | char | denare"
sql_inj = split (sql_injdata ، "|")
ifrequest.querystring <> "" ثم
foreachsql_getinRequest.querystring
forsql_data = 0toubound (sql_inj)
IFINSTR (request.querystring (SQL_GET) ، SQL_INJ (SQL_DATA))> 0THEN
Response.write "<scriptLanguage = ****> ALERT ('Tianxia Alliance SQL Universal Anty Provision Orders ↓ nnplease لا تتضمن أحرفًا غير قانونية في المعلمات ومحاولة الحقن!") ؛ History.back (-1) </script> "
استجابة
Endif
التالي
التالي
Endif
وبهذه الطريقة ، نقوم بتنفيذ اعتراض حقن طلب GET ، ولكن يتعين علينا أيضًا تصفية طلب النشر ، لذلك علينا أن نستمر في التفكير في الطلب. الرمز كما يلي
ifrequest.form <> "" ثم
foreachsql_postinRequest.form
forsql_data = 0toubound (sql_inj)
IFINSTR (request.form (sql_post) ، sql_inj (sql_data))> 0then
Response.write "<scriptLanguage = ****> ALERT ('Tianxia Alliance SQL SQL Universal Versions styse ↓ nnplease لا تتضمن أحرفًا غير قانونية في المعلمات ومحاولة حقن! nnhttp: //www.521movie.com') ؛ history.back (-1)
استجابة
Endif
التالي
التالي
Endif
حسنًا ، تم الانتهاء من المهمة ، لقد قمنا بتطبيق اعتراض المعلومات لطلبات الحصول على و POST. تحتاج فقط إلى الرجوع إلى هذه الصفحة قبل فتح ملف قاعدة البيانات مثل conn.asp. استمر في تطوير برنامجك بثقة ، ولا حاجة إلى التفكير فيما إذا كان سيظل هاجمه بحقن SQL. أليس كذلك؟