اتضح أن تغيير mdb إلى asp يمكن أن يمنع التنزيل هو هراء. استخدم Flashget لاختبار تنزيل ملف data.asp وحفظه كملف data.mdb، ووجدت أنه سليم عند فتحه باستخدام ACCESS! 1. استخدم خيالك لتعديل اسم ملف قاعدة البيانات
ومع ذلك، إذا حصل المهاجم على المسار إلى قاعدة البيانات من خلال طريقة جهة خارجية، فيمكنه تنزيل قاعدة البيانات. لذلك السرية هي في الحد الأدنى.
2. قم بتغيير لاحقة اسم قاعدة البيانات إلى ASA، وASP، وما إلى ذلك.
يجب دمج هذه الطريقة مع بعض الإعدادات، وإلا سيحدث الموقف في بداية هذه المقالة.
(1) تمت إضافة حقل ثنائي.
(2) أضف <% أو %> إلى هذا الملف، وسيقوم IIS بتحليله وفقًا لبناء جملة ASP، ثم يبلغ عن خطأ 500، وبطبيعة الحال لا يمكن تنزيله. ومع ذلك، من غير المجدي إضافة <% إلى حقل النص أو المذكرة في قاعدة البيانات، لأن ACCESS سيعالج المحتوى، وسيكون موجودًا في قاعدة البيانات كـ <%، وهو غير صالح! الطريقة الصحيحة هي تخزين <% في حقل كائن OLE، حتى يمكن تحقيق هدفنا.
كيفية القيام بذلك:
أولاً، استخدم المفكرة لإنشاء ملف نصي جديد بالمحتوى <%، ثم أعطه اسمًا عشوائيًا واحفظه.
بعد ذلك، افتح ملف قاعدة البيانات باستخدام Access، وقم بإنشاء جدول جديد، وأعطه اسمًا عشوائيًا، وأضف حقل كائن OLE إلى الجدول، ثم أضف سجلاً، وأدخل الملف النصي الذي تم إنشاؤه من قبل، إذا تم ذلك بشكل صحيح، فمن المفترض أن تكون قادرًا على ذلك لرؤية سجل جديد يسمى "حزمة البيانات" هذا كل شيء
3. أضف # قبل اسم قاعدة البيانات
ما عليك سوى إضافة # إلى الاسم الأمامي لملف قاعدة البيانات، ثم تعديل عنوان قاعدة البيانات في ملف اتصال قاعدة البيانات (مثل conn.asp). المبدأ هو أنه عند التنزيل، يمكن التعرف فقط على الجزء الموجود قبل علامة #، وسيتم إزالة الأجزاء التالية تلقائيًا، على سبيل المثال، إذا كنت تريد التنزيل: http://www.pcdigest.com/date/#123 .mdb (على افتراض وجوده). سواء كان IE أو FLASHGET، فإن ما تحصل عليه هو http://www.test.com/date/index.htm (index.asp، وdefault.jsp، وما إلى ذلك، مستندات الصفحة الرئيسية التي قمت بتعيينها في IIS)
بالإضافة إلى ذلك، يؤدي الاحتفاظ ببعض المسافات في اسم ملف قاعدة البيانات أيضًا دورًا مشابهًا، نظرًا لخصوصية بروتوكول HTTP لتحليل العنوان، سيتم ترميز المسافات كـ %، مثل http://www.test.com/date/. 123;456.mdb، تم تنزيله من http://www.test.com/date/123%456.mdb. لا يحتوي الدليل الخاص بنا على الملف 123%456.mdb على الإطلاق، لذا فإن التنزيل غير صالح بعد هذا التعديل، حتى إذا كشفت عن عنوان قاعدة البيانات، فلن يتمكن الآخرون عمومًا من تنزيله!
4. تشفير قاعدة البيانات
أولاً، حدد أدوات->الأمان->تشفير/فك تشفير قاعدة البيانات، وحدد قاعدة البيانات (على سبيل المثال: الموظف.mdb)، ثم انقر فوق موافق، ثم ستظهر نافذة لحفظ قاعدة البيانات بعد التشفير، وحفظها باسم: الموظف1. com.mdb. سيتم بعد ذلك ترميز الموظف.mdb ثم حفظه كـ member1.mdb. تجدر الإشارة إلى أن الإجراء أعلاه لا يقوم بتعيين كلمة مرور لقاعدة البيانات، ولكنه يقوم فقط بتشفير ملف قاعدة البيانات عرض محتويات ملف قاعدة البيانات.
بعد ذلك، نقوم بتشفير قاعدة البيانات أولاً، نفتح ملف job1.mdb المشفر. عند الفتح، نختار الوضع الحصري. ثم حدد أدوات->الأمان->تعيين كلمة مرور قاعدة البيانات من القائمة، ثم أدخل كلمة المرور. بهذه الطريقة، حتى لو حصل شخص آخر على الملف member1.mdb، فلن يتمكن من رؤية الموظف1.mdb بدون كلمة المرور.
بعد التشفير تحتاج إلى تعديل صفحة اتصال قاعدة البيانات، مثل:
conn.open driver={برنامج تشغيل الوصول إلى Microsoft (*.mdb)};uid=admin;pwd=كلمة مرور قاعدة البيانات;dbq=مسار قاعدة البيانات
بعد هذا التعديل، حتى لو تم تنزيل قاعدة البيانات، فلن يتمكن الآخرون من فتحها (بشرط ألا يتم تسريب كلمة المرور الموجودة في صفحة اتصال قاعدة البيانات الخاصة بك)
ولكن تجدر الإشارة إلى أنه نظرًا لأن آلية التشفير الخاصة بقاعدة بيانات Access بسيطة نسبيًا، فإن فك التشفير يكون سهلاً حتى لو تم تعيين كلمة مرور. يقوم نظام قاعدة البيانات بتكوين سلسلة مشفرة عن طريق XORing لكلمة المرور التي أدخلها المستخدم بمفتاح ثابت، ويخزنها في منطقة ملف *.mdb بدءًا من العنوان &H42. لذلك يمكن للمبرمج الجيد بسهولة إنشاء برنامج صغير يحتوي على عشرات الأسطر للحصول على كلمة المرور لأي قاعدة بيانات Access بسهولة. لذلك، طالما تم تنزيل قاعدة البيانات، يظل أمن المعلومات الخاص بها غير معروف.
5. ضع قاعدة البيانات خارج دليل الويب أو ضع ملف اتصال قاعدة البيانات في دلائل افتراضية أخرى
إذا كان دليل الويب الخاص بك هو e:/webroot، فيمكنك وضع قاعدة البيانات في المجلد e:/data، وتعديل عنوان اتصال قاعدة البيانات في صفحة اتصال قاعدة البيانات في e:/webroot إلى: ../data/database name form، بحيث يمكن استدعاء قاعدة البيانات بشكل طبيعي، ولكن لا يمكن تنزيلها لأنها ليست في دليل WEB! هذه الطريقة غير مناسبة بشكل عام للمستخدمين الذين يشترون مساحة افتراضية.
6. استخدم مصادر بيانات ODBC.
في البرمجة مثل ASP، يجب أن تحاول استخدام مصادر بيانات ODBC، ولا تكتب اسم قاعدة البيانات في البرنامج، وإلا فسيتم فقدان اسم قاعدة البيانات مع سرية كود مصدر ASP، على سبيل المثال: DBPath = Server.MapPath(. ./123/abc/asfadf.mdb )
conn.open driver={Microsoft Access Driver (*.mdb)};dbq=& DBPath
يمكن ملاحظة أنه بغض النظر عن مدى غرابة اسم قاعدة البيانات، وبغض النظر عن مدى عمق الدليل المخفي، بعد اختراق كود مصدر ASP، يمكن تنزيله بسهولة. إذا كنت تستخدم مصدر بيانات ODBC، فلن تكون هناك مشكلة من هذا القبيل: conn.open اسم ODBC-DSN، ولكن هذا أكثر إزعاجًا إذا قمت بنقل الدليل، فيجب عليك إعادة تعيين مصدر البيانات، للحصول على طريقة أكثر ملاءمة الفصل 7. 8 طرق!
7. إضافة تعيين موسع لاسم قاعدة البيانات مثل MDB
يتم تحقيق هذه الطريقة عن طريق تعديل إعدادات IIS، وهي مناسبة للأصدقاء الذين لديهم تحكم IIS، ولكنها غير مناسبة للمستخدمين الذين يشترون مضيفات افتراضية (ما لم يقوم المسؤول بإعدادها). أعتقد أن هذه الطريقة هي الأفضل حاليًا. من خلال تغيير واحد فقط، يمكن منع تنزيل قاعدة بيانات الموقع بالكامل. يمكن منع التنزيلات حتى إذا تم الكشف عن عنوان الهدف دون تعديل الكود.
نقوم بإضافة تحليل التطبيق لملف .mdb في خصائص IIS---الدليل الرئيسي---التكوين---التعيين---ملحق التطبيق. لاحظ أن ملف DLL (أو EXE، وما إلى ذلك) المحدد هنا لا يبدو عشوائيًا. إذا لم يكن التحديد مناسبًا، فلا يزال من الممكن تنزيل ملف MDB. لاحظ أنه من الأفضل عدم تحديد asp.dll، وما إلى ذلك. يمكنك اختبار ذلك بنفسك
بعد هذا التعديل، قم بتنزيل قاعدة البيانات مثل: http://www.test.com/data/dvbbs6.mdb. سوف تظهر (أخطاء مثل 404 أو 500)
8: مميزات استخدام .net
قام Mu Niao من Dongwang بكتابة أداة WBAL لمكافحة الارتباط السريع لمنع التنزيل غير القانوني للملفات. للحصول على التفاصيل، يرجى تسجيل الدخول إلى http://www.9seek.com/WBAL/؛
ومع ذلك، فإن هذا يمنع فقط التنزيلات غير المحلية وليس لديه وظيفة منع تنزيلات قاعدة البيانات فعليًا. ومع ذلك، هذه الطريقة هي تقريبًا نفس الطريقة الخامسة. يمكنك تعديل ملف .NET بحيث لا يمكن تنزيله محليًا!
من بين هذه الطرق، يمكن تغيير الطريقتين السابعة والثامنة فقط بشكل موحد، بعد تعديل التكوين مرة واحدة، يمكن منع تنزيل قاعدة بيانات الموقع بأكمله، وتتطلب الطرق العديدة الأخرى تعديل اسم قاعدة البيانات وملف الاتصال على التوالي أكثر إزعاجًا، ولكن بالنسبة للأصدقاء المضيفين الظاهريين، يمكنهم القيام بذلك فقط!
في الواقع، يجب أن تكون الطريقة السادسة امتدادًا للطريقة الخامسة، والتي يمكنها تحقيق وظائف خاصة. ومع ذلك، بالنسبة للمضيفين الذين لا يدعمون .net أو يخافون من الإعدادات المزعجة، فمن الأفضل استخدام الطريقة الخامسة مباشرة، والطريقة السادسة. يتم استخدام الطريقة السادسة بشكل افتراضي، ولا يزال بإمكانك النشر عن طريق النسخ والاتصال بالمنتدى أو سجل الزوار الخاص بنفس المضيف، ثم النقر للتنزيل (لأن هذه الصفحات المرجعية من نفس المضيف)
9. استخدم إعدادات أذونات الملف لقسم NTFS (بواسطة percyboy)
نحن نعلم بالفعل أن ASP.NET يستخدم ADO.NET للوصول إلى قاعدة البيانات، ويمكن الوصول إلى قاعدة بيانات Access - إحدى قواعد البيانات المنخفضة الاستخدام الشائعة لدينا - من خلال اتصال OleDb. تتناول هذه المقالة العديد من مطالبات الأخطاء التي قد تظهر في ASP.NET. ومن الواضح أن ملفات قاعدة البيانات التي تم إنشاؤها بواسطة Access 2000 وAccess XP سيكون لها مطالبات خطأ مختلفة عند حدوث أخطاء في الوصول. نأمل أن يساعد الجميع. نقطة أخرى مهمة هي أنني آمل من خلال هذه المقالة أن يكون لدى الجميع فهم جديد لإعدادات أذونات NTFS لملفات قاعدة بيانات Access في ASP.NET.