Используйте ASP, чтобы скрыть пути файлов, чтобы реализовать анти-кражанную цепь
Если мы знаем фактический путь статического файла, такого как: http://www.xx.com/download/51windows.pdf, если у сервера нет специальных ограничений, мы можем загрузить его без усилий! Когда веб -сайт предоставляет 51windows.pdf загрузку, как загрузитель не может получить свой фактический путь! В этой статье будет представлена то, как использовать ASP, чтобы скрыть фактический путь загрузки файла.
При управлении файлами веб -сайтов мы можем разместить файлы с одинаковым расширением в том же каталоге и дать, например, специальное имя, поместить каталог файлов PDF, как и a_pdf_file_s, и сохранить следующий код как down.asp. Его онлайн -путь - http://www.xx.com/down.asp. Мы можем использовать http://www.xx.com/down.asp?filename=51windows.pdf для загрузки этого файла, и загружатель не может увидеть фактический путь загрузки этого файла! В 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
Ответ. Напишите "незаконная ссылка!"
response.end
эндиф
ifrequest.cookies ("Logined") = "" then
response.redirect "/login.asp" нужно войти в систему!
эндиф
FunctiongetFilename (longname) '/folder1/folder2/file.asp => file.asp
whileinstr (longname, "/")
longname = right (longname, len (longname) -1)
Венд
GetFilEname = LongName
Конечная функция
Dimstream
Dimcontents
DimFileName
DimtrueFilename
Dimfileext
Constadtypebinary = 1
Filename = request.querystring ("имя файла")
iffilEname = "" Тогда
Response.write "Неверное имя файла!"
Response.end
Эндиф
FileExt = mid (имя файла, instrrev (filename, ".")+1)
SelectCaseUcase (FileExt)
Case "ASP", "ASA", "ASPX", "Asax", "MDB"
Ответ. Напишите "незаконная операция!"
Response.end
Endselect
Response.clear
iflcase (right (имя файла, 3)) = "gif" orlcase (right (имя файла, 3)) = "jpg" orlcase (справа (имя файла, 3)) = "png" then
Response.contenttype = "Image/*" "Нет диалоговое окно для загрузки для файлов изображений
еще
Response.contenttype = "Приложение/MS-Download"
эндиф
Ответ.
SetStream = server.createObject ("adodb.stream")
Stream.type = adtypebinary
Stream.Open
iflcase (right (имя файла, 3)) = "pdf", затем установите каталог файлов типа PDF
TrueFilEname = "/the_pdf_file_s/" & filename