Pencegahan hotlink ASP selalu menjadi masalah bagi teman-teman yang membuat situs web untuk iklan. Hotlinking sangat mempengaruhi pengoperasian normal server dan situs web. Rilis hotlink menjadi sangat penting. Hari ini, mari kita lihat metode untuk menerapkan pencegahan hotlink ASP . Batang.
Jika kita mengetahui jalur sebenarnya dari file statis seperti: http://www.xx.com/download/webjx.pdf, dan jika server tidak menetapkan batasan khusus apa pun, kita dapat mendownloadnya dengan mudah! Ketika situs web menyediakan unduhan webjx.pdf, bagaimana kami dapat mencegah pengunduh mendapatkan jalur sebenarnya? Artikel ini akan memperkenalkan cara menggunakan Asp untuk menyembunyikan jalur pengunduhan file yang sebenarnya.
Saat kita mengelola file website, kita dapat meletakkan file dengan ekstensi yang sama di direktori yang sama dan memberinya nama khusus, misalnya direktori tempat file pdf ditempatkan adalah the_pdf_file_s, dan kode berikut disimpan sebagai down.asp, dan jalur online-nya adalah http://www.xx.com/down.asp, kita dapat menggunakan http://www.xx.com/down.asp?FileName=webjx.pdf untuk mengunduh file ini, dan pengunduhnya tidak dapat melihat file ini Jalur unduhan sebenarnya! Di down.asp, kita juga dapat mengatur apakah pengunduhan file memerlukan login, dan menentukan apakah halaman sumber yang diunduh adalah situs web eksternal, sehingga mencegah tautan file.
<% From_url = Cstr(Permintaan.ServerVariables(HTTP_REFERER)) Serv_url = Cstr(Permintaan.ServerVariables(SERVER_NAME)) jika pertengahan(From_url,8,len(Serv_url)) <> Serv_url lalu respon.tulis Tautan ilegal! ''Mencegah hotlinking respon.akhir berakhir jika jika Permintaan.Cookies(Masuk)= maka respon.redirect /login.asp ''Membutuhkan login! berakhir jika Fungsi GetFileName(nama panjang)''/folder1/folder2/file.asp=>file.asp while instr(nama panjang,/) nama panjang = kanan(nama panjang,len(nama panjang)-1) pergi ke GetFileName = nama panjang Fungsi Akhir Aliran Redup Redupkan Isi Redupkan Nama File Redupkan TrueFileName Redupkan FileExt Konstan adTypeBinary = 1 Nama File = Permintaan.QueryString(Nama File) jika Nama File = Lalu Respon.Tulis nama file tidak valid! Respon.Akhir Berakhir jika FileExt = Tengah(NamaFile, InStrRev(NamaFile, .) + 1) pilih Kasus Ucase (FileExt) Kasus ASP, ASA, ASPX, ASAX, MDB Respon.Tulis operasi ilegal! Respon.Akhir Akhiri pilihan Respon. Jelas jika lcase(right(FileName,3))=gif atau lcase(right(FileName,3))=jpg atau lcase(right(FileName,3))=png maka Response.ContentType = image/* ''Tidak ada kotak dialog download untuk file gambar kalau tidak Response.ContentType = aplikasi/ms-download berakhir jika Response.AddHeader disposisi konten, lampiran nama file= & GetFileName(Request.QueryString(FileName)) Setel Aliran = server.createObject(ADODB.Stream) Aliran.Jenis = adTypeBinary Aliran. Terbuka jika lcase(kanan(NamaFile,3))=pdf lalu ''Setel direktori file jenis pdf TrueFileName = /the_pdf_file_s/&NamaFile berakhir jika if lcase(right(FileName,3))=doc lalu ''Setel direktori file jenis DOC TrueFileName = /my_D_O_C_file/&NamaFile berakhir jika jika lcase(right(FileName,3))=gif atau lcase(right(FileName,3))=jpg atau lcase(right(FileName,3))=png maka TrueFileName = /all_images_/&FileName ''Setel direktori file gambar berakhir jika Streaming.LoadFromFile Server.MapPath(TrueFileName) Meskipun Bukan Stream.EOS Respons.BinaryWrite Stream.Baca(1024 * 64) Pergi ke Aliran. Tutup Setel Aliran = Tidak Ada Respon. Siram Respon.Akhir %> |