كيفية منع هجمات القراصنة بشكل أفضل، أود أن أعطي رأيي الشخصي! أولاً، لا ينبغي استخدام البرامج المجانية مجانًا، نظرًا لأنه يمكنك مشاركة الكود الأصلي، يمكن للمهاجمين أيضًا تحليل الكود. إذا انتبهت للتفاصيل، فسيتم تحسين أمان موقعك بشكل كبير. حتى في حالة حدوث ثغرة أمنية مثل 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، وهو أمر خطير للغاية.
نصائح للوقاية:
(1) قم بتسمية ملف قاعدة البيانات الخاص بك باسم معقد وغير تقليدي، ثم ضعه في عدة أدلة. ما يسمى غير التقليدي، على سبيل المثال، إذا كانت هناك قاعدة بيانات تريد حفظ معلومات حول الكتب، فلا تعطيها اسم book.mdb، بل أعطها اسمًا غريبًا، مثل d34ksfslf.mdb، وضعها يتم وضعه في عدة أدلة مثل ./kdslf/i44/studi/، مما يزيد من صعوبة حصول المتسللين على ملف قاعدة بيانات Access عن طريق التخمين.
(2) لا تكتب اسم قاعدة البيانات في البرنامج. بعض الأشخاص يحبون كتابة DSN في البرنامج مثل:
DBPath = Server.MapPath(cmddb.mdb)
conn.Open driver={Microsoft Access Driver (*.mdb)};
إذا حصل شخص ما على البرنامج المصدر، فسيكون اسم قاعدة بيانات Access مرئيًا في لمحة. لذلك، يوصى بتعيين مصدر البيانات في ODBC ثم كتابة هذا في البرنامج:
conn.openshujiyuan
(3) استخدم Access لتشفير وتشفير ملفات قاعدة البيانات. أولاً، حدد قاعدة البيانات (مثل: member.mdb) في Tools → Security → Encrypt/Decrypt Database، ثم انقر فوق OK. بعد ذلك ستظهر نافذة لحفظ قاعدة البيانات بعد التشفير، ويمكنك حفظها باسم: member1.mdb.
تجدر الإشارة إلى أن الإجراء أعلاه لا يقوم بتعيين كلمة مرور لقاعدة البيانات، ولكنه يقوم فقط بتشفير ملف قاعدة البيانات. والغرض من ذلك هو منع الآخرين من استخدام أدوات أخرى لعرض محتويات ملف قاعدة البيانات.
بعد ذلك، نقوم بتشفير قاعدة البيانات أولاً، نفتح ملف job1.mdb المشفر. عند الفتح، نختار الوضع الحصري. ثم حدد الأدوات → الأمان → تعيين كلمة مرور قاعدة البيانات من القائمة، ثم أدخل كلمة المرور. بهذه الطريقة، حتى إذا حصل شخص آخر على الملف member1.mdb، فلن يتمكن من رؤية محتويات Staff1.mdb بدون كلمة المرور.
7. منع هجمات الحقن عن بعد
كان من المفترض أن يكون هذا النوع من الهجوم أحد أساليب الهجوم الشائعة نسبيًا في الماضي، مثل هجمات POST، حيث يمكن للمهاجم تغيير قيمة البيانات التي سيتم تقديمها حسب الرغبة لتحقيق غرض الهجوم. ومن الأمثلة الأخرى: تزوير ملفات تعريف الارتباط (COOKIES). وهو الأمر الأكثر جدارة بالتسبب في مبرمج أو موقع ويب. ملاحظة طويلة، لا تستخدم ملفات تعريف الارتباط كوسيلة لمصادقة المستخدم، وإلا فإنك ستترك المفتاح للسارق.
على سبيل المثال:
إذا كان Trim(Request.cookies (uname))=fqy و Request.cookies(upwd) =fqy#e3i5.com إذن
……..أكثر…………
انتهي إذا
أعتقد أن جميع مشرفي المواقع أو الأصدقاء الذين يحبون كتابة البرامج يجب ألا يرتكبوا هذا النوع من الأخطاء، فهذا أمر لا يغتفر حقًا. لقد قمنا بتزوير ملفات تعريف الارتباط لسنوات عديدة. إذا كنت لا تزال تستخدمها، فلا يمكنك إلقاء اللوم على الآخرين لسرقة كلمة المرور الخاصة بك. يتعلق الأمر بالمستخدمين بالنسبة لكلمات المرور أو تسجيل دخول المستخدم، فمن الأفضل استخدام الجلسة، وهي الأكثر أمانًا. إذا كنت تريد استخدام ملفات تعريف الارتباط، فأضف معلومات أخرى إلى ملفات تعريف الارتباط الخاصة بك، وقيمتها العشوائية هي 64 بت ممكن لتخمين ذلك.
إذا لم يكن (rs.BOF أو rs.eof) ثم
تسجيل الدخول = صحيح
الجلسة (اسم المستخدم ومعرف الجلسة) = اسم المستخدم
الجلسة (كلمة المرور ومعرف الجلسة) = كلمة المرور
'Response.cookies(username)= اسم المستخدم
'Response.cookies(Password)= كلمة المرور
دعونا نتحدث عن كيفية منع هجمات الحقن عن بعد، أحد الهجمات الشائعة هو سحب ملف إرسال النموذج الفردي إلى الملف المحلي وتوجيه النموذج 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
نهاية إذا
%>
"أنا شخصياً أشعر أن تصفية التعليمات البرمجية أعلاه ليست جيدة جدًا، ولا يزال من الممكن أن يتم تقديم بعض التقديمات الخارجية بشكل علني، لذلك كتبت واحدة أخرى.
'هذا له تأثير تصفية جيد جدًا ويوصى باستخدامه.
إذا instr(request.servervariables(http_referer),http://&request.servervariables(host) )<1 ثم Response.write حدث خطأ على الخادم أثناء معالجة عنوان URL.
إذا كنت تستخدم أي وسيلة لمهاجمة الخادم، فيجب أن تكون محظوظًا لأن جميع عملياتك قد تم تسجيلها بواسطة الخادم، وسوف نقوم بإخطار مكتب الأمن العام وإدارة الأمن الوطني في أقرب وقت ممكن للتحقيق في عنوان IP الخاص بك.
Response.end
نهاية إذا
نص البرنامج(9)
اعتقدت أن كل شيء سيكون على ما يرام بهذه الطريقة، لذلك أضفت بعض القيود على صفحة الجدول، مثل الحد الأقصى للطول، وما إلى ذلك... لكن الله قاسٍ للغاية، فكلما زاد خوفك من شيء ما، كلما فعل ذلك. لا تنسى، يمكن للمهاجمين اختراق قيود حقن SQL على طول مربع الإدخال أثناء الهجوم. هل تريد كتابة برنامج SOCKET لتغيير HTTP_REFERER؟ أنا لن. تم نشر مقال مثل هذا على الإنترنت:
----------len.reg-----------------
محرر سجل ويندوز الإصدار 5.00
[ملحق HKEY_CURRENT_USERSoftware&MicrosoftInternet ExplorerMenuExt]
@=C:المستندات والإعداداتAdministratorDesktoplen.htm
السياقات = كلمة d:00000004
----------نهاية---------------------
----------len.htm------------------
----------نهاية----------------------
الاستخدام: قم أولاً باستيراد len.reg إلى السجل (لاحظ مسار الملف)
ثم انسخ len.htm إلى الموقع المحدد في التسجيل.
افتح صفحة الويب، ضع المؤشر على مربع الإدخال الذي تريد تغيير طوله، وانقر بزر الماوس الأيمن، ربما تكون قد شاهدت خيارًا يسمى الامتداد.
انقر للقيام بذلك: يمكن فعل الشيء نفسه مع البرامج النصية التي تقيد محتوى الإدخال.
ما يجب القيام به؟ لقد تحررت من قيودنا وضاعت كل جهودنا؟ لا، ارفع لوحة المفاتيح وقل لا. دعنا نعود إلى تصفية أحرف البرنامج النصي، فالحقن الذي يقومون به ليس أكثر من مجرد هجمات على البرنامج النصي. لنضع كل طاقتنا في الصفحات بعد الإجراء. في صفحة chk.asp، نقوم بتصفية كافة الأحرف غير القانونية. ما هي النتيجة؟ لقد قمنا فقط بإعطاء فرصة خاطئة أمامنا وطلبنا منهم تغيير السجل. فقط عندما ينتهون من التغييرات، سيدركون أن ما فعلوه كان عبثًا.
8. حصان طروادة ASP
بعد قولي هذا، أود أن أذكر جميع مشرفي المواقع بالمنتدى بأن يكونوا حذرين عند تحميل الملفات: لماذا يحتله المهاجمون المضيف أيضًا بعد اختراق برنامج المنتدى؟ السبب هو...صحيح! أسب طروادة! رجس مطلق. فايروس؟ لا، ما عليك سوى وضع هذا الملف في برنامج المنتدى الخاص بك ويمكنك دائمًا البحث عنه. سيكون من الغريب عدم تقيؤ الدم. كيف يمكننا منع تحميل ASP Trojans على الخادم؟ الطريقة بسيطة للغاية. إذا كان المنتدى الخاص بك يدعم تحميل الملفات، فيرجى تحديد تنسيق الملف الذي تريد تحميله. لا أوافق على استخدام تنسيقات الملفات القابلة للتغيير مباشرة من البرنامج نعم، ترك المزيد من الراحة لنفسك سيوفر أيضًا المزيد من الراحة للمهاجمين. كيفية تحديد التنسيق الذي قمت بجمعه هنا وتعديله يمكنك إلقاء نظرة عليه:
نص البرنامج (10)
'تحديد ما إذا كان نوع الملف مؤهلاً أم لا
الوظيفة الخاصة CheckFileExt (fileEXT)
تحميل منتدى خافت
Forumupload=gif,jpg,bmp,jpeg
Forumupload=split(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
.deletedirectory
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></center></html>
الاستجابة. النهاية
نهاية إذا
التالي
قم بإضافتها إلى برنامج التحميل الخاص بك للتحقق منها، وسيتم تحسين أمان برنامج التحميل الخاص بك بشكل كبير.
ماذا؟ هل مازلت قلقا؟ احصل على بطاقتك الرابحة واطلب من مزود خدمة استضافة الويب الخاص بك المساعدة. قم بتسجيل الدخول إلى الخادم وأعد تسمية أو حذف عناصر shell.application وshell.application.1 الموجودة في معرف PROG. ثم قم بإعادة تسمية أو حذف كل من العنصر WSCRIPT.SHELL وWSCRIPT.SHELL.1. هاها، أستطيع أن أقول بجرأة أنه ربما أكثر من نصف المضيفين الافتراضيين في الصين لم يتغيروا. لا يسعني إلا أن أكون سعيدًا لأن مستخدميك متعاونون جدًا، وإلا... سأحذف، سأحذف، سأحذف، أحذف، أحذف...