English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 威盾新闻 >> asp防盗链原理及实现方法

 

asp防盗链原理及实现方法

威盾防火墙 2015-02-28

 

asp防盗链原理及实现方法
防盗链的原理:
不直接给出服务器中真实的url,将要访问的文件放到服务器上不可访问的目录中,所以要访问的文件就必须通过asp读取文件以二进制流的类型来发送文件,如果加上来源地址和用户登录状态的判断,可以一定意义上的防止盗链。
缺点是:不过开销也会很大。

下面是两个示例的函数,没有加上权限判断。
Sub downloadFile(strFile)
On error resume next
Server.ScriptTimeOut=999999
Dim S,fso,f,intFilelength,strFilename,DownFileName

strFilename = Server.MapPath(strFile)
Response.Clear
Set s = Server.CreateObject("ADODB.Stream")
s.Open
s.Type = 1
Set fso = Server.CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(strFilename) Then
'Response.Write("<h1>错误: </h1>
系统找不到指定文件")
showimg "images/logos.gif"
Exit Sub
End If
Set f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
If err Then
'Response.Write("<h1>错误: </h1>" & err.Description & "<p>")
showimg "images/logos.gif"
Response.End
End If
Set fso=Nothing
Dim Data
Data=s.Read
s.Close
Set s=Nothing
If Response.IsClientConnected Then
Response.AddHeader "Content-Disposition", "attachment; filename=" & strFile
Response.AddHeader "Content-Length", intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite Data
Response.Flush
End If
End Sub

 

ASP防盗链输出图片函数 showimg (需要Persits.Jpeg组件支持)

Sub showimg(FileName)
Response.Clear
Dim Jpeg,temp_pic
On Error Resume Next
Set Jpeg = Server.CreateObject("Persits.Jpeg")
If -2147221005=Err then
'Response.write "没有这个组件,请安装!" '检查是否安装AspJpeg组件


相关内容: 最新内容:
会使用iis防盗链设置才能让电脑操作更安全[2015-02-28]
文件防盗链的实现(含源码)[2015-02-28]
教你如何用ISAPI_Rewrite做IIS防盗链[2015-02-28]
利用Varnish实现图片防盗链[2015-02-26]
利用ADODB.Stream 防盗链[2015-02-25]
流媒体服务器防盗链插件-Auth Plug[2015-02-25]
会使用iis防盗链设置才能让电脑操作更安全[2015-02-28]
文件防盗链的实现(含源码)[2015-02-28]
黑客怎样“挂马”?[2015-02-28]
教你如何用ISAPI_Rewrite做IIS防盗链[2015-02-28]
从网站日志来简单分析和预防黑客的入侵[2015-02-28]
分层纵深防御,一切黑客入侵都是浮云[2015-02-28]