كيفية منع هجمات القراصنة بشكل أفضل، أود أن أعطي رأيي الشخصي! أولاً، لا ينبغي استخدام البرامج المجانية مجانًا، نظرًا لأنه يمكنك مشاركة الكود الأصلي، يمكن للمهاجمين أيضًا تحليل الكود. إذا انتبهت للتفاصيل، فسيتم تحسين أمان موقعك بشكل كبير. حتى في حالة حدوث ثغرة أمنية مثل SQL حقن، فمن المستحيل أن يقوم المهاجم بإزالة موقعك على الفور.
نظرًا لسهولة استخدام ASP، يستخدم المزيد والمزيد من برامج الخلفية لمواقع الويب لغة البرمجة النصية ASP. ومع ذلك، نظرًا لأن ASP نفسه به بعض الثغرات الأمنية، فقد يستغله المتسللون إذا لم يكونوا حذرين. في الواقع، لا يقتصر الأمان على مسؤولي الشبكات فحسب، بل يجب على المبرمجين أيضًا الاهتمام بتفاصيل أمنية معينة وتطوير عادات أمنية جيدة، وإلا فسيجلب ذلك مخاطر أمنية كبيرة على مواقعهم الإلكترونية. في الوقت الحاضر، تحتوي معظم برامج ASP الموجودة على مواقع الويب على ثغرات أمنية من نوع أو آخر، ولكن إذا انتبهت عند كتابة البرامج، فلا يزال من الممكن تجنبها.
1. تم اختراق اسم المستخدم وكلمة المرور
مبدأ الهجوم: غالبًا ما يكون اسم المستخدم وكلمة المرور هما أكثر ما يهتم به المتسللون. إذا تم رؤية كود المصدر بطريقة ما، فستكون العواقب وخيمة.
مهارات الوقاية: من الأفضل تغليف البرامج التي تتضمن أسماء مستخدمين وكلمات مرور على جانب الخادم وتظهر بأقل قدر ممكن في ملفات ASP. ويجب منح أسماء المستخدمين وكلمات المرور التي تتضمن اتصالات قاعدة البيانات الحد الأدنى من الأذونات. يمكن كتابة أسماء المستخدمين وكلمات المرور التي تظهر بشكل متكرر في ملف تضمين مخفي. إذا كان الأمر يتضمن الاتصال بقاعدة البيانات، فمن الأفضل أن تمنحها الإذن بتنفيذ الإجراءات المخزنة. لا تمنح المستخدم أبدًا الإذن مباشرة بتعديل السجلات أو إدراجها أو حذفها.
2. مبدأ تجاوز الهجوم للتحقق
: معظم برامج ASP التي تحتاج إلى التحقق تقوم الآن بإضافة بيان حكم إلى رأس الصفحة، لكن هذا لا يكفي، فمن الممكن للمتسللين تجاوز التحقق والدخول مباشرة.
مهارات الوقاية: يمكن لصفحات ASP التي تحتاج إلى التحقق منها تتبع اسم الملف الخاص بالصفحة السابقة، ويمكن فقط للجلسات المنقولة من الصفحة السابقة قراءة هذه الصفحة.
3. مشكلة تسرب ملف Inc
مبدأ الهجوم: عندما يتم إنشاء الصفحة الرئيسية باستخدام ASP ولم يتم الانتهاء منها قبل تصحيح الأخطاء، يمكن إضافتها تلقائيًا ككائن بحث بواسطة بعض محركات البحث. إذا استخدم شخص ما محرك بحث للبحث عن صفحات الويب هذه في هذا الوقت، فسيحصل على موقع الملفات ذات الصلة، ويمكنه عرض تفاصيل موقع قاعدة البيانات وبنيتها في المتصفح، وبالتالي الكشف عن كود المصدر الكامل.
نصائح للوقاية: يجب على المبرمجين تصحيح أخطاء صفحات الويب بشكل كامل قبل نشرها، ويحتاج خبراء الأمان إلى تقوية ملفات ASP حتى لا يتمكن المستخدمون الخارجيون من رؤيتها. أولاً، قم بتشفير محتوى الملف .inc ثانيًا، يمكنك أيضًا استخدام الملف .asp بدلاً من الملف .inc بحيث لا يتمكن المستخدمون من عرض التعليمات البرمجية المصدر للملف مباشرة من المستعرض. يجب ألا يستخدم اسم الملف الخاص بملف inc الافتراضي للنظام أو اسمًا له معنى خاص يسهل على المستخدمين تخمينه. حاول استخدام أحرف إنجليزية غير منتظمة.
4. مبدأ هجوم تنزيل النسخ الاحتياطي التلقائي
: في بعض أدوات تحرير برامج ASP، عند إنشاء ملف ASP أو تعديله، يقوم المحرر تلقائيًا بإنشاء ملف نسخة احتياطية، على سبيل المثال، سيقوم UltraEdit بعمل نسخة احتياطية من ملف .bak إذا قمت بإنشاء أو تعديل بعد بتعديل some.asp، سيقوم المحرر تلقائيًا بإنشاء ملف يسمى some.asp.bak. إذا لم تقم بحذف ملف bak هذا، فيمكن للمهاجم تنزيل ملف some.asp.bak مباشرة، بحيث يمكن للبرنامج المصدر لـ some.asp. سيتم تحميل.
نصائح للوقاية: تحقق من برنامجك بعناية قبل تحميله واحذف المستندات غير الضرورية. كن حذرًا بشكل خاص مع الملفات التي تحتوي على اللاحقة BAK.
5.
مبدأ الهجوم على الأحرف الخاصة: يعد صندوق الإدخال هدفًا للمتسللين الذين يمكنهم التسبب في ضرر للعميل المستخدم عن طريق إدخال لغة البرنامج النصي؛ إذا كان مربع الإدخال يتضمن استعلامًا عن البيانات، فسوف يستخدمون عبارات استعلام خاصة للحصول على المزيد من بيانات قواعد البيانات. أو حتى الجدول بأكمله ولذلك، يجب تصفية مربع الإدخال. ومع ذلك، إذا تم إجراء التحقق من صحة الإدخال على العميل فقط من أجل تحسين الكفاءة، فمن الممكن تجاوزه.
مهارات الوقاية: في برامج ASP التي تتعامل مع مربعات الإدخال مثل لوحات الرسائل وBBS، من الأفضل حظر عبارات HTML وJavaScript وVBScript إذا لم تكن هناك متطلبات خاصة، فيمكنك قصر إدخال الحروف والأرقام على الحروف و الأرقام، وحظر الأحرف الخاصة. وفي الوقت نفسه، يكون طول أحرف الإدخال محدودًا. ولا يجب إجراء التحقق من صحة الإدخال فقط على جانب العميل، ولكن يجب إجراء فحوصات مماثلة على البرنامج من جانب الخادم.
6.
مبدأ الهجوم على ثغرة تنزيل قاعدة البيانات: عند استخدام Access كقاعدة بيانات خلفية، إذا كان شخص ما يعرف أو يخمن المسار واسم قاعدة البيانات لقاعدة بيانات Access الخاصة بالخادم من خلال طرق مختلفة، فيمكنه أيضًا تنزيل ملف قاعدة بيانات Access، وهو أمر خطير للغاية . ل.
نصائح للوقاية:
(1) قم بتسمية ملف قاعدة البيانات الخاص بك باسم معقد وغير تقليدي، ثم ضعه في عدة أدلة. ما يسمى بـ "غير التقليدي"، على سبيل المثال، إذا كانت هناك قاعدة بيانات تريد حفظ معلومات حول الكتب، فلا تطلق عليها اسم "book.mdb"، ولكن أعطها اسمًا غريبًا، مثل d34ksfslf ، ووضعه في عدة أدلة مثل ./kdslf/i44/studi/، بحيث سيكون من الصعب على المتسللين الحصول على ملف قاعدة بيانات Access الخاص بك عن طريق التخمين.
(2) لا تكتب اسم قاعدة البيانات في البرنامج. بعض الأشخاص يحبون كتابة DSN في البرنامج، على سبيل المثال:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
إذا حصل شخص ما على البرنامج المصدر، فسيكون اسم قاعدة بيانات Access مرئيًا في لمحة واحدة. لذلك، يوصى بتعيين مصدر البيانات في ODBC، ثم كتابته في البرنامج:
conn.open "shujiyuan"
(3) استخدم Access لتشفير ملف قاعدة البيانات وتشفيره. أولاً، حدد قاعدة البيانات (مثل: member.mdb) في "الأدوات → الأمان → تشفير/فك تشفير قاعدة البيانات"، ثم انقر فوق "موافق" ثم ستظهر نافذة "حفظ قاعدة البيانات المشفرة باسم": "employer1 .mdb".
تجدر الإشارة إلى أن الإجراء أعلاه لا يقوم بتعيين كلمة مرور لقاعدة البيانات، ولكنه يقوم فقط بتشفير ملف قاعدة البيانات. والغرض من ذلك هو منع الآخرين من استخدام أدوات أخرى لعرض محتويات ملف قاعدة البيانات.
بعد ذلك، نقوم بتشفير قاعدة البيانات، أولاً، نفتح ملف job1.mdb المشفر. عند الفتح، نختار الوضع "الحصري". ثم حدد "أدوات → الأمان → تعيين كلمة مرور قاعدة البيانات" من القائمة، ثم أدخل كلمة المرور. بهذه الطريقة، حتى إذا حصل شخص آخر على الملف Staff1.mdb، فلن يتمكن من رؤية محتويات Staff1.mdb بدون كلمة المرور.
7. منع هجمات الحقن عن بعد.
يجب أن يكون هذا النوع من الهجمات من أساليب الهجوم الشائعة نسبيًا في الماضي، مثل هجوم POST، ويمكن للمهاجم تغيير قيمة البيانات التي سيتم إرسالها حسب الرغبة لتحقيق الغرض من الهجوم. تزوير ملفات تعريف الارتباط، وهو الأمر الأكثر أهمية، وهو ما يلفت انتباه المبرمج أو مشرف الموقع. لا تستخدم ملفات تعريف الارتباط كوسيلة لمصادقة المستخدم. وإلا فإنك تترك المفتاح
للصوص
. uname"))=" fqy" وRequest.cookies("upwd") ="fqy#e3i5.com" ثم
……..أكثر…………
انتهى الأمر، إذا
كنت أعتقد أن جميع مشرفي المواقع أو الأصدقاء الذين يحبون كتابة البرامج يجب ألا يرتكبوا هذا النوع من الأخطاء، فهذا أمر لا يغتفر حقًا، لقد قمنا بتزوير ملفات تعريف الارتباط لسنوات عديدة. إذا كنت لا تزال تستخدمها، فلا يمكنك إلقاء اللوم على الآخرين لسرقة ملفات تعريف الارتباط الخاصة بك كلمة المرور. عندما يتعلق الأمر بكلمات مرور المستخدم أو تسجيل دخول المستخدم، فمن الأفضل أن تستخدم الجلسة، وهي الأكثر أمانًا. إذا كنت تريد استخدام ملفات تعريف الارتباط، فأضف معلومة أخرى إلى ملفات تعريف الارتباط الخاصة بك، وقيمتها العشوائية هي 64 بت تحتاج إلى تخمينه، مثال:
إن لم يكن (rs.BOF أو rs.eof).
تسجيل الدخول = "صحيح"
جلسة ("اسم المستخدم"&معرف الجلسة) = اسم المستخدم
جلسة ("كلمة المرور" ومعرف الجلسة) = كلمة المرور
'Response.cookies("username")= اسم المستخدم
'Response.cookies("Password") = كلمة المرور
دعنا نتحدث عن كيفية منع هجمات الحقن عن بعد. الهجوم العام هو سحب ملف إرسال النموذج الفردي إلى الموقع المحلي وتوجيه Form ACTION = "chk.asp" إلى الخادم الخاص بك. معالجة ملفات البيانات كافية. إذا كانت جميع تصفية البيانات الخاصة بك موجودة في صفحة جدول واحدة، فستكون قد تعرضت للهجوم بواسطة برنامج نصي.
كيف يمكنك منع مثل هذه الهجمات عن بعد؟ يرجى الاطلاع على الكود يلي: نص البرنامج (9)
<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
إذا كان mid(server_v1,8,len(server_v2))<>server_v2 إذن
رد: اكتب "<br><br><center>"
الرد.اكتب " "
Response.write "المسار الذي أرسلته خاطئ. إرسال البيانات من خارج الموقع محظور. الرجاء عدم تغيير المعلمات!"
الرد.اكتب "
"
Response.end
نهاية إذا
%>
الممكن
تقديم بعض عمليات الإرسال الخارجية بشكل مفتوح، لذلك كتبت
تأثيرًا آخر "
.servervariables("http_referer" )," http://"&request.servervariables("host ") )<1 ثم Response.write "حدث خطأ على الخادم عند معالجة عنوان URL.
إذا كنت تهاجم الخادم بأي وسيلة ، إذن يجب أن تكون محظوظًا لأن جميع عملياتك قد تم تسجيلها بواسطة الخادم، وسوف نقوم بإخطار مكتب الأمن العام وإدارة الأمن الوطني في أقرب وقت ممكن للتحقيق في عنوان IP الخاص
بك
نهاية إذا
جسم البرنامج (9)
أن كل شيء سيكون على ما يرام مع هذا، وأضاف بعض القيود على صفحة النموذج، مثل الحد الأقصى للطول، وما إلى ذلك... لكن الله قاسٍ للغاية، فكلما زاد خوفك من شيء ما، زاد احتمال حدوثه. لا تنسى، هل يمكن للمؤلف اختراق الحد الأقصى لطول مربع الإدخال أثناء هجمات حقن SQL؟ هل تريد كتابة برنامج SOCKET لتغيير HTTP_REFERER؟ أنا لن. تم نشر مثل هذا المقال على الإنترنت:
------------len.reg-----------------
محرر سجل ويندوز الإصدار 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExtExtensions]
@="C:Documents and SettingsAdministratorDesktoplen.htm"
"السياقات"=dword:00000004
----------نهاية---------------------
----------len.htm------------------
----------end----------------------
الاستخدام: قم أولاً باستيراد len.reg إلى السجل (لاحظ مسار الملف)
ثم ثم انسخ len.htm إلى المكان المحدد في السجل.
افتح صفحة الويب، ثم ضع المؤشر على مربع الإدخال حيث سيتم تغيير الطول، ثم انقر بزر الماوس الأيمن. إذا رأيت خيارًا يسمى الامتداد،
فانقر فوق Done! : ويمكن أن يتم الشيء نفسه
كيفية التعامل
مع البرامج النصية التي تقيد محتوى الإدخال ؟لقد تحررت من قيودنا وضاعت كل جهودنا؟ لا، ارفع لوحة المفاتيح وقل لا. دعنا نعود إلى تصفية أحرف البرنامج النصي، فالحقن الذي يقومون به ليس أكثر من مجرد هجمات على البرنامج النصي. لنضع كل طاقتنا في الصفحات بعد الإجراء. في صفحة chk.asp، نقوم بتصفية كافة الأحرف غير القانونية. ما هي النتيجة؟ لقد قمنا فقط بإعطاء فرصة خاطئة أمامنا وطلبنا منهم تغيير السجل. فقط عندما ينتهون من التغييرات، سيدركون أن ما فعلوه كان عبثًا.
8.
لقد تحدثنا هنا عن حصان طروادة ASP، وأود أن أذكر جميع مشرفي مواقع المنتدى بأن يكونوا حذرين عند تحميل الملفات: لماذا يحتله المهاجمون المضيف أيضًا بعد تعطل برنامج المنتدى؟ السبب هو...صحيح! أسب طروادة! رجس مطلق. فايروس؟ لا، ما عليك سوى وضع الملف في برنامج المنتدى الخاص بك ويمكنك دائمًا البحث عنه. سيكون من الغريب عدم تقيؤ الدم. كيف يمكننا منع تحميل ASP Trojans على الخادم؟ الطريقة بسيطة للغاية. إذا كان المنتدى الخاص بك يدعم تحميل الملفات، فيرجى تحديد تنسيق الملف الذي تريد تحميله. لا أوافق على استخدام تنسيقات الملفات القابلة للتغيير مباشرة من البرنامج نعم، إن ترك المزيد من الراحة لنفسك سيوفر أيضًا المزيد من الراحة للمهاجمين. كيفية تحديد التنسيق؟ لقد قمت بجمع واحدة هنا وتعديلها، يمكنك إلقاء نظرة عليها:
نص البرنامج (10)
"الحكم على ما إذا كان نوع الملف مؤهلاً".
تحميل منتدى خافت
منتدى التحميل = "gif، jpg، bmp، jpeg"
Forumupload = تقسيم (Forumupload، "،")
لأني=0 إلى ubound(Forumupload)
إذا كان lcase(fileEXT)=lcase(trim(Forumupload(i))) إذن
CheckFileExt=true
وظيفة الخروج
آخر
CheckFileExt=false
نهاية إذا
التالي
وظيفة النهاية
'التحقق من شرعية
مجموعة محتوى الملف MyFile = server.CreateObject ("Scripting.FileSystemObject")
اضبط MyText = MyFile.OpenTextFile (sFile, 1) 'قراءة الملف النصي sTextAll = lcase(MyText.ReadAll): MyText.إغلاق
'تحديد العمليات الخطيرة في ملفات المستخدم sStr = "8 .getfolder .createfolder .deletefolder .createdirectory
".حذف الدليل"
sStr = sStr & ".saveas wscript.shell script.encode"
sNoString = سبليت(sStr،" ")
لأني = 1 إلى sNoString(0)
إذا كان instr (sTextAll، sNoString (i)) <> 0 ثم
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write "<center><br><big>"& sFileSave &"يحتوي الملف على أوامر متعلقة بأدلة التشغيل، وما إلى ذلك."&_
"<br><font color=red>"& mid(sNoString(i),2) &"</font>، لأسباب أمنية، لا يمكن تحميل <b>. <b>"&_"</big>< / مركز></html>"
الاستجابة.نهاية
نهاية إذا
التالي
أضفهم إلى برنامج التحميل الخاص بك للتحقق، ثم سيتم تحسين أمان برنامج التحميل الخاص بك بشكل كبير
. هل مازلت قلقا؟ احصل على بطاقتك الرابحة واطلب من مزود خدمة استضافة الويب الخاص بك المساعدة. قم بتسجيل الدخول إلى الخادم وأعد تسمية أو حذف العناصر "shell.application" و"shell.application.1" في معرف PROG. ثم قم بإعادة تسمية أو حذف كل من العنصر "WSCRIPT.SHELL" و"WSCRIPT.SHELL.1". هاها، أستطيع أن أقول بجرأة أنه ربما أكثر من نصف المضيفين الافتراضيين في الصين لم يتغيروا. لا يسعني إلا أن أكون سعيدًا لأن المستخدمين لديك متعاونون جدًا، وإلا... سأحذف، سأحذف، سأحذف، أحذف، أحذف...