ASPを使用してファイルパスを非表示にして、盗難防止チェーンを実現します
http://www.xx.com/download/51windows.pdfなどの静的ファイルの実際のパスがわかっている場合、サーバーに特別な制限がない場合は、簡単にダウンロードできます。ウェブサイトが51Windows.pdfのダウンロードを提供している場合、ダウンローダーが実際のパスを取得しない方法!この記事では、ASPを使用してファイルの実際のダウンロードパスを非表示にする方法を紹介します。
Webサイトファイルを管理するときは、同じ拡張機能を持つファイルを同じディレクトリに配置し、特別な名前を付けることができます。たとえば、pdfファイルディレクトリをthe_pdf_file_sと配置し、次のコードをダウン.aspとして保存できます。そのオンラインパスはhttp://www.xx.com/down.aspです。 http://www.xx.com/down.asp?filename=51windows.pdfを使用してこのファイルをダウンロードできます。 Down.aspでは、ダウンロードしたファイルをログインする必要があるかどうかを設定し、ファイルが盗まれないように、ダウンロードされたソースページが外部Webサイトであるかどうかを判断することもできます。
サンプルコード:
<%
from_url = cstr(request.servervariables( "http_referer"))
serv_url = cstr(request.servervariables( "server_name"))
ifmid(from_url、8、len(serv_url))<> serv_urltthen
Response.Write "Illogal Link!" 'リンク盗みを防ぎます
Response.End
endif
ifrequest.cookies( "logined")= "" then
Response.redirect "/login.asp" 'ログインする必要があります!
endif
functiongetFileName(longname) '/folder1/folder2/file.asp => file.asp
whileinstr(longname、 "/")
longname = right(longname、len(longname)-1)
ウェンド
getFileName = longName
エンド機能
薄暗いストリーム
調光物質
dimfilename
dimtruefilename
dimfileext
ConstadTypebinary = 1
filename = request.querystring( "filename")
iffilename = "" then
Response.Write「無効なファイル名!」
Response.End
endif
fileext = mid(filename、instrrev(filename、 "。")+1)
selectcaseucase(fileext)
ケース「ASP」、「ASA」、「ASPX」、「ASAX」、「MDB」
Response.Write「違法な操作!」
Response.End
EndSelect
Response.Clear
iflcase(right(filename、3))= "gif" orlcase(right(filename、3))= "jpg" orlcase(right(filename、3))= "png" then
Response.ContentType = "Image/*" '画像ファイルにダイアログボックスが表示されません
それ以外
Response.ContentType = "Application/MS-DownLoad"
endif
response.addheader "content-disposition"、 "attachment; filename ="&getFileName(request.QueryString( "filename"))
setStream = server.createObject( "adodb.stream")
stream.type = adtypebinary
stream.open
iflcase(right(filename、3))= "pdf" then 'PDFタイプファイルディレクトリを設定します
truefileName = "/the_pdf_file_s/"&filename