لقد كان منع الارتباط الساخن لـ ASP دائمًا بمثابة صداع للأصدقاء الذين يقومون بإنشاء مواقع إعلانية. يؤثر Hotlinking بشكل خطير على التشغيل العادي للخوادم ومواقع الويب. لقد أصبح من الضروري جدًا إصدار الروابط الساخنة اليوم، دعونا نلقي نظرة على طريقة لتنفيذ منع الارتباط الساخن لـ ASP. حاجِز.
إذا عرفنا المسار الفعلي لملف ثابت مثل: http://www.xx.com/download/webjx.pdf، وإذا لم يضع الخادم أي قيود خاصة، فيمكننا تنزيله دون عناء! عندما يوفر الموقع إمكانية تنزيل webjx.pdf، كيف يمكننا منع القائم بالتنزيل من الحصول على المسار الفعلي؟ ستقدم هذه المقالة كيفية استخدام Asp لإخفاء مسار التنزيل الفعلي للملفات.
عندما نقوم بإدارة ملفات موقع الويب، يمكننا وضع الملفات التي لها نفس الامتداد في نفس الدليل وإعطائها اسمًا خاصًا، على سبيل المثال، دليل ملفات pdf هو the_pdf_file_s، ويتم حفظ الكود التالي باسم down.asp، ومساره عبر الإنترنت. هو http://www.xx.com/down.asp، يمكننا استخدام http://www.xx.com/down.asp?FileName=webjx.pdf لتنزيل هذا الملف، ولا يمكن للقائم بالتنزيل رؤية هذا الملف. مسار التحميل الفعلي! في down.asp، يمكننا أيضًا تعيين ما إذا كان تسجيل الدخول مطلوبًا لتنزيل الملف، وتحديد ما إذا كانت الصفحة المصدر التي تم تنزيلها هي موقع ويب خارجي، وبالتالي منع ربط الملف.
<% From_url = Cstr(Request.ServerVariables(HTTP_REFERER)) Serv_url = Cstr(Request.ServerVariables(SERVER_NAME)) إذا كان mid(From_url,8,len(Serv_url)) <> Serv_url إذن رد: كتابة رابط غير قانوني! '' منع الارتباط السريع Response.end نهاية إذا إذا Request.Cookies(تسجيل الدخول)= إذن Response.redirect /login.asp ''يتطلب تسجيل الدخول! نهاية إذا الدالة GetFileName(longname)''/folder1/folder2/file.asp=>file.asp بينما instr (اسم طويل،/) الاسم الطويل = اليمين (الاسم الطويل، لين (الاسم الطويل) -1) com.wind GetFileName = longname وظيفة النهاية تيار خافت محتويات خافتة اسم الملف خافت خافت TrueFileName خافت FileExt كونست adTypeBinary = 1 اسم الملف = Request.QueryString (اسم الملف) إذا كان اسم الملف = إذن الاستجابة.اكتب اسم ملف غير صالح! الاستجابة.النهاية انتهي إذا FileExt = Mid(FileName, InStrRev(FileName, .) + 1) حدد حالة UCase(FileExt) حالة ASP، ASA، ASPX، ASAX، MDB Response.Write عملية غير قانونية! الاستجابة.النهاية نهاية التحديد الاستجابة.واضحة إذا كان lcase(right(FileName,3))=gif أو lcase(right(FileName,3))=jpg أو lcase(right(FileName,3))=png إذن Response.ContentType = image/* ''لا يظهر مربع حوار تنزيل لملفات الصور آخر Response.ContentType = application/ms-download نهاية إذا Response.AddHeader content-disposition, Attachment filename= & GetFileName(Request.QueryString(FileName)) تعيين الدفق = server.createObject(ADODB.Stream) Stream.Type = adTypeBinary دفق.فتح إذا lcase(right(FileName,3))=pdf ثم ''تعيين دليل ملف نوع pdf TrueFileName = /the_pdf_file_s/&FileName نهاية إذا إذا lcase(right(FileName,3))=doc ثم ''قم بتعيين دليل ملف نوع DOC TrueFileName = /my_D_O_C_file/&FileName نهاية إذا إذا كان lcase(right(FileName,3))=gif أو lcase(right(FileName,3))=jpg أو lcase(right(FileName,3))=png إذن TrueFileName = /all_images_/&FileName ''تعيين دليل ملف الصورة نهاية إذا Stream.LoadFromFile Server.MapPath(TrueFileName) في حين لا Stream.EOS Response.BinaryWrite Stream.Read (1024 * 64) ويند دفق.إغلاق تعيين الدفق = لا شيء الاستجابة. فلوش الاستجابة.النهاية %> |