Die Verhinderung von ASP-Hotlinks war schon immer ein Problem für Freunde, die Werbewebsites erstellen. Es ist sehr wichtig geworden, Hotlinks zu veröffentlichen. Schauen wir uns heute eine Methode zur Implementierung der ASP-Hotlink-Verhinderung an. Bar.
Wenn wir den tatsächlichen Pfad einer statischen Datei kennen, wie zum Beispiel: http://www.xx.com/download/webjx.pdf, und wenn der Server keine besonderen Einschränkungen festlegt, können wir sie mühelos herunterladen! Wenn die Website den Download von webjx.pdf anbietet, wie können wir verhindern, dass der Downloader seinen tatsächlichen Pfad erhält? In diesem Artikel erfahren Sie, wie Sie mit Asp den tatsächlichen Downloadpfad von Dateien verbergen.
Wenn wir Website-Dateien verwalten, können wir Dateien mit derselben Erweiterung im selben Verzeichnis ablegen und ihnen einen speziellen Namen geben. Das PDF-Dateiverzeichnis lautet beispielsweise the_pdf_file_s, und der folgende Code wird als down.asp und sein Online-Pfad gespeichert ist http.://www.xx.com/down.asp, wir können http://www.xx.com/down.asp?FileName=webjx.pdf verwenden, um diese Datei herunterzuladen, und der Downloader kann diese Datei nicht sehen Der eigentliche Downloadpfad! In down.asp können wir auch festlegen, ob zum Herunterladen der Datei eine Anmeldung erforderlich ist, und feststellen, ob es sich bei der heruntergeladenen Quellseite um eine externe Website handelt, wodurch verhindert wird, dass die Datei verlinkt wird.
<% From_url = Cstr(Request.ServerVariables(HTTP_REFERER)) Serv_url = Cstr(Request.ServerVariables(SERVER_NAME)) if mid(From_url,8,len(Serv_url)) <> Serv_url dann Response.write Illegaler Link! ''Hotlinking verhindern Antwort.Ende Ende wenn if Request.Cookies(Logined)= dann Response.redirect /login.asp ''Anmeldung erforderlich! Ende wenn Funktion GetFileName(longname)''/folder1/folder2/file.asp=>file.asp while instr(longname,/) longname = right(longname,len(longname)-1) wenden GetFileName = Langname Funktion beenden Schwacher Stream Inhalte abdunkeln Dateiname dimmen TrueFileName dimmen FileExt dimmen Const adTypeBinary = 1 FileName = Request.QueryString(FileName) if FileName = Then Response.Write Ungültiger Dateiname! Antwort.Ende Beenden Sie, wenn FileExt = Mid(FileName, InStrRev(FileName, .) + 1) Wählen Sie Fall UCase(FileExt) Fall ASP, ASA, ASPX, ASAX, MDB Antwort. Ungültige Operation schreiben! Antwort.Ende Auswahl beenden Antwort.Klar wenn lcase(right(FileName,3))=gif oder lcase(right(FileName,3))=jpg oder lcase(right(FileName,3))=png dann Response.ContentType = image/* ''Für Bilddateien wird kein Download-Dialogfeld angezeigt anders Response.ContentType = application/ms-download Ende wenn Response.AddHeader content-disposition, attachment filename= & GetFileName(Request.QueryString(FileName)) Setze Stream = server.createObject(ADODB.Stream) Stream.Type = adTypeBinary Stream.Öffnen if lcase(right(FileName,3))=pdf then ''Dateiverzeichnis für den PDF-Typ festlegen TrueFileName = /the_pdf_file_s/&FileName Ende wenn if lcase(right(FileName,3))=doc then ''Legen Sie das Dateiverzeichnis vom Typ DOC fest TrueFileName = /my_D_O_C_file/&FileName Ende wenn wenn lcase(right(FileName,3))=gif oder lcase(right(FileName,3))=jpg oder lcase(right(FileName,3))=png dann TrueFileName = /all_images_/&FileName ''Legen Sie das Bilddateiverzeichnis fest Ende wenn Stream.LoadFromFile Server.MapPath(TrueFileName) Während nicht Stream.EOS Response.BinaryWrite Stream.Read(1024 * 64) Wend Stream.Schließen Stellen Sie Stream = Nichts ein Response.Flush Antwort.Ende %> |