ASP 핫링크 방지는 광고 웹사이트를 만드는 친구들에게 항상 골칫거리였습니다. 핫링크는 서버와 웹사이트의 정상적인 작동에 심각한 영향을 미칩니다. 오늘은 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)) if mid(From_url,8,len(Serv_url)) <> Serv_url 그런 다음 response.write 불법 링크입니다! ''핫링크 방지 응답.끝 종료하면 Request.Cookies(Logined)=이면 response.redirect /login.asp ''로그인이 필요합니다! 종료하면 함수 GetFileName(긴 이름)''/folder1/folder2/file.asp=>file.asp 동안 instr(긴 이름,/) 긴이름 = right(긴이름,len(긴이름)-1) 향하게 하다 GetFileName = 긴 이름 기능 종료 딤 스트림 희미한 내용 희미한 파일 이름 희미한 TrueFileName 희미한 파일 확장 상수 adTypeBinary = 1 파일 이름 = Request.QueryString(파일 이름) FileName = 그렇다면 Response.Write 파일 이름이 잘못되었습니다! 응답.종료 다음과 같은 경우 종료 FileExt = Mid(파일 이름, InStrRev(파일 이름, .) + 1) Case Ucase(FileExt) 선택 사례 ASP, ASA, ASPX, ASAX, MDB 응답.불법 연산을 작성하세요! 응답.종료 선택 종료 응답.지우기 if lcase(right(FileName,3))=gif 또는 lcase(right(FileName,3))=jpg 또는 lcase(right(FileName,3))=png 다음 Response.ContentType = image/* ''이미지 파일에 대한 다운로드 대화 상자가 나타나지 않습니다 또 다른 Response.ContentType = 애플리케이션/ms-다운로드 종료하면 Response.AddHeader 콘텐츠 처리, 파일 이름= & GetFileName(요청.QueryString(파일 이름)) 스트림 설정 = server.createObject(ADODB.Stream) Stream.Type = adTypeBinary 스트림.오픈 if lcase(right(FileName,3))=pdf then ''pdf 유형 파일 디렉터리 설정 TrueFileName = /the_pdf_file_s/&파일 이름 종료하면 if lcase(right(FileName,3))=doc then ''DOC 유형 파일 디렉터리를 설정합니다. TrueFileName = /my_D_O_C_file/&파일 이름 종료하면 if lcase(right(FileName,3))=gif 또는 lcase(right(FileName,3))=jpg 또는 lcase(right(FileName,3))=png 다음 TrueFileName = /all_images_/&FileName ''이미지 파일 디렉터리 설정 종료하면 Stream.LoadFromFile 서버.MapPath(TrueFileName) 스트리밍되지 않는 동안.EOS 응답.BinaryWrite Stream.Read(1024 * 64) 향하게 하다 스트림.닫기 스트림 설정 = 없음 응답.플러시 응답.종료 %> |