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를 사용 하여이 파일을 다운로드 할 수 있으며 다운로더는이 파일의 실제 다운로드 경로를 볼 수 없습니다! 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 ( "logined") = ""그런 다음
response.redirect "/login.asp" '로그인해야합니다!
endif
functionGetFilename (longname) '/folder1/folder2/file.asp => file.asp
whileinst (longname, "/")
longname = right (longname, len (longname) -1)
향하게 하다
getFilename = longname
최종 기능 장애
Dimstream
디디언트
Dimfilename
DimtrueFilename
Dimfileext
constadtypebinary = 1
filename = request.querystring ( "filename")
iffilename = ""그런 다음
응답. "유효하지 않은 파일 이름!"
응답. 엔드
endif
fileExt = mid (filename, instrev (filename, ".")+1)
selectCaseucase (fileext)
"ASP", "ASA", "ASPX", "ASAX", "MDB"
응답. "불법 작전!"
응답. 엔드
EndSelect
응답
iflcase (오른쪽 (filename, 3)) = "gif"orlcase (오른쪽 (filename, 3)) = "jpg"orlcase (오른쪽 (filename, 3)) = "png"
응답
또 다른
응답.
endif
response.addheader "content-disposition", "첨부 파일; filename ="& getfilename (request.querystring ( "filename"))
setStream = server.createObject ( "adodb.stream")
stream.type = adtypebinary
스트림
iflcase (오른쪽 (filename, 3)) = "pdf"그런 다음 PDF 유형 파일 디렉토리를 설정하십시오
truefilename = "/the_pdf_file_s/"& filename