当前位置: 首页 > 图文教程 > 网络编程 > ASP > 防盗链接ASP函数

ASP
在Vista IIS 7 中用 vs2005 调试 Web 项目的注意事项
ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码
ASP运行在IIS6 500错误解决办法
ASP 精华源码收集(五年总结)
ASP分页类(支持多风格变换)
动网论坛验证码改进 加法验证码(ASPJpeg版)
asp 存储过程分页代码
asp select下拉菜单选择图标并实时显示
aspjpeg组件通用加水印函数代码
aspjpeg 添加水印教程及生成缩略图教程
ASP 根据用户权限判断显示的列标题
asp 批量删除选中的多条记录
asp 隐藏并修改文件的最后修改时间
Discuz!NT 论坛整合ASP程序论坛教程
ajax+asp无限级分类树型结构(带数据库)
asp 由动态网页转变为静态网页的实现代码
通过表单的做为二进制文件上传request.totalbytes提取出上传的二级制数据
ASP 使用三层架构 asp中使用类
ASP GetRef 函数指针试探
ASP 三层架构 Error处理类

防盗链接ASP函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 197 ::
收藏到网摘: n/a

由于很多手机铃声网站都有一个自己的防盗链程序,但此程序也就一个“防君子,不防小偷”的功能。 简单介绍下功能吧:使用了ASP的一个对象ServerVariables(服务器环境变量),通过这个环境变量可以获取到真正的下载地址再通过一些简单的VBS内置函数破坏其真正地址的完整性。达到欺骗下载软件的功能。现附上源码提供大家学习。
复制代码 代码如下:

<% FunctIon DownloadFIle(StrFIle)
StrFIlename=StrFIle
Response.Buffer=True
Response.Clear
Set S=Server.CreateObJect("ADODB.Stream")
S.Open
S.Type=1
on Error Resume Next
Set Fso=Server.CreateObJect("ScrIptIng.FIleSystemObJect")
If Not Fso.FIleExists(StrFIleName) Then
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件不存在或者已经删除."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End If
FileExt=MId(StrFIlename,InStrRev(StrFIleName, ".")+1)
Select Case UCase(FIleExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB", "PHP", "JSP", "SHTML", "HTML", "HTM", "TV", "DATA"
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件不存在或者已经删除."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End Select
Set F=Fso.GetFIle(StrFIlename)
IntFIlelength=F.SIze
s.LoadFromFIle(StrFIlename)
If Err Then
From_Url=Cstr(Request.ServerVarIables("HTTP_REFERER"))
Serv_Url=Cstr(Request.ServerVarIables("SERVER_NAME"))
If MId(From_Url,8,len(Serv_Url)) <> Serv_Url Then
Response.WrIte "该文件数据不完整或许已损坏."
Response.End
End If
Response.RedIrect Request.ServerVarIables("HTTP_REFERER")
Response.End
End If
Set Upload=Server.CreateObJect("PersIts.Upload")
If Upload Is Nothing Then
Response.AddHeader "Content-DIsposItIon","attachment; FIlename="&F.Name
Response.AddHeader "Content-Length",IntFilelength
Response.CharSet="UTF-8"
Response.ContentType="application/x-download"
Response.BinaryWrite S.Read
Response.Flush
S.Close
Set s=NothIng
Else
Upload.SendBinary StrFIlename,True,"application/x-download",False
End If
End FunctIon
%>

使用:<%Call DownloadFIle("DownloadFIle")%>。