asp是这样防盗链的吗?

itljl 2005-05-18 11:33:29
把下面的代码存为Const.asp,然后在每个页面加<!-- #include File="INC/Const.asp" -->达到防盗链的目的吗?
-----------------------------
<%
On Error Resume Next
Response.Buffer = True
Response.Clear

Function UseStream(FileName)
Dim FileStream,File
Set FileStream = Server.CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1
File = server.MapPath(FileName)
FileStream.LoadFromFile(File)
'Response.ContentType = "application/octet-stream"

Response.BinaryWrite FileStream.Read
Response.Flush

FileStream.Close
Set FileStream = Nothing
End Function



Function DownloadFile(FileName)
On error resume next
Server.ScriptTimeOut=999999
Response.Clear
Dim FileType,ADS,StrFileName,Data
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
StrFileName=Server.Mappath(FileName)
TempFileName = Split(StrFileName,"\")(Ubound(Split(StrFileName,"\")))
Set ADS = Server.CreateObject("ADODB.Stream")
ADS.Open
ADS.Type = 1
ADS.LoadFromFile(StrFileName)
Data=ADS.Read
Fsize=Clng(lenb(Data))
If Err Then
'Response.Redirect("Images/NoImg2.gif")
Response.Write("<h1>错误: </h1>" & err.Description & "<p>")
Response.End
End If
ADS.Close
If Response.IsClientConnected Then
If FileType="gif" Or FileType="jpg" Or FileType="jpeg" Or FileType="bmp" Then
Response.ContentType = "image/*"
Else
Response.AddHeader "Content-Disposition", "attachment; filename=" & TempFileName
Response.ContentType = "application/ms-download"
End If
Response.AddHeader "Content-Length", Fsize
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite Data
Response.Flush
End If
End Function

Dim Server_v1,Server_v2,Path
Server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

If Server_v1<>"" And Mid(Server_v1,8,Len(Server_v2)) = Server_v2 Then
Path=Request("Path")
If Path="Face" Then
TFilePath= FacePath & "/" & Request("FileName")
Else
TFilePath = FilePath & "/" & Request("FileName")
End If
Else
TFilePath = "Images/NoImg.gif"
End If
If ChkFile(TFilePath) Then Response.Redirect("Images/NoImg2.gif")
DownloadFile(TFilePath)
Function ChkFile(FileName)
Dim Temp,FileType
ChkFile=False
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
Temp="|asp|aspx|cgi|php|cdx|cer|asa|"
If Instr(Temp,"|"&FileType&"|")>0 Then ChkFile=True
End Function

%>
-----------------
...全文
87 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
remoonwind 2005-05-19
  • 打赏
  • 举报
回复
文件得放在 非WEB站点目录里吧 要不被知道了真实地址还是可以下的 虽然想知道真实地址是比较难了点
还有... 你没理解这函数是做什么的吧?
不是包含了就有用的... 是要使用的... 不过估计你还是知道的
真的想防下载 还是 ISAPI FILTER好一点...

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧