استخدم ASP لإخفاء مسارات الملفات لتحقيق سلسلة مضادة للسرقة
إذا عرفنا المسار الفعلي لملف ثابت مثل: http://www.xx.com/download/51windows.pdf ، إذا لم يكن للخادم قيود خاصة ، فيمكننا تنزيله دون عناء! عندما يوفر موقع الويب تنزيل 51Windows.pdf ، كيف لا يمكن أن يحصل التنزيل على مساره الفعلي! ستقدم هذه المقالة كيفية استخدام ASP لإخفاء مسار التنزيل الفعلي لملف.
عند إدارة ملفات موقع الويب ، يمكننا وضع الملفات بنفس الامتداد في نفس الدليل وإعطاء اسم خاص ، على سبيل المثال ، وضع دليل ملف PDF مثل the_pdf_file_s ، وحفظ الكود التالي مثل Down.asp. المسار عبر الإنترنت هو http://www.xx.com/down.asp. يمكننا استخدام http://www.xx.com/down.asp؟filename=51Windows.pdf لتنزيل هذا الملف ، ولا يمكن لـ Downloader رؤية مسار التنزيل الفعلي لهذا الملف! في Down.asp ، يمكننا أيضًا تعيين ما إذا كان الملف الذي تم تنزيله يحتاج إلى تسجيل الدخول وتحديد ما إذا كانت صفحة المصدر التي تم تنزيلها هي موقع ويب خارجي ، وذلك لمنع سرقة الملف.
نموذج الرمز:
<٪
from_url = cstr (request.servervariables ("http_referer")))
serv_url = cstr (request.servervariables ("server_name")))
ifmid (from_url ، 8 ، len (serv_url)) <> serv_urltthen
الرد
استجابة
Endif
ifrequest.cookies ("logned") = "" ثم
Response.redirect "/login.asp" "الحاجة لتسجيل الدخول!
Endif
functionGetFilename (LongName) '/Folder1/Folder2/File.asp => file.asp
بينما (LongName ، "/")
LongName = يمين (LongName ، Len (Longname) -1)
ويند
getFilename = longname
الوظيفية
Dimstream
dimcontents
dimfilename
dimtruefilename
dimfilext
constadtypebinary = 1
اسم الملف = request.querystring ("اسم الملف")
iffilename = "" ثم
استجابة. "اسم الملف غير صالح!"
استجابة
Endif
filext = mid (اسم الملف ، instrev (اسم الملف ، ".")+1)
selectascyucase (filext)
حالة "ASP" ، "ASA" ، "ASPX" ، "Asax" ، "MDB"
استجابة. الكتابة "عملية غير قانونية!"
استجابة
endselect
استجابة
IflCase (يمين (اسم الملف ، 3)) = "GIF" orlcase (يمين (اسم الملف ، 3)) = "JPG" orlcase (يمين (اسم الملف ، 3)) = "PNG" ثم
استجابة. contenttype = "Image/*" 'لا يظهر مربع حوار تنزيل لملفات الصور
آخر
استجابة. contenttype = "Application/MS-Download"
Endif
Response.addheader "Disposition" ، "المرفق ؛ Filename =" & getFilename (request.querystring ("filename")))
setStream = server.createBject ("Adodb.stream")
Stream.Type = AdTypeBinary
Stream.Open
iflcase (يمين (اسم الملف ، 3)) = "PDF" ثم "قم بتعيين دليل ملف نوع PDF
TrueFilename = "/the_pdf_file_s/" & filename