当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp下载防盗链代码

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 asp下载防盗链代码


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

asp下载防盗链代码
第一种:
终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:
复制代码 代码如下:
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(From_url,8,len(Serv_url)) <> Serv_url and mid(From_url,8,len(Serv_url))<>"ITstudy.cn" and mid(From_url,8,len(Serv_url))<>"www.ITstudy.cn" then
response.write "您下载的软件来自软晨学习网,请直接从主页下载,谢谢<br>" '防止盗链
response.write "<a href=http://www.ITstudy.cn>软晨学习网http://www.ITstudy.cn</a>" '防止盗链
response.end
end if
%>

第二种:
复制代码 代码如下:
<%
'定义函数,用ADODB.Stream读取二进制数据
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Response.AddHeader "Content-Disposition", "/upload/tech/20091012/20091012011917_4f4adcbf8c6f66dcfc8a3282ac2bf10a.gif"'文件名
Response.ContentType = "image/GIF" '设置(1)
response.Binarywrite ReadBinaryFile(server.mappath("/upload/tech/20091012/20091012011917_0f840be9b8db4d3fbd5ba2ce59211f55.gif"))'就是你读取存在本地的文件,防止被
别人知道真实路径盗连的。
%>

(1)下面的示例将 ContentType 属性设置为其他的常见值。
text/HTML 这个就不说了
image/GIF gif图片
image/JPEG jpg图片
application/x-cdf cdf文档
application/wma 就是西瓜哪个音乐类型了
具体可以参照 Web 浏览器文档或当前的 HTTP 规格说明
这样再利用asp的储存session,cookies,以及读取HTTP头等特殊功能就可以完全真正的实现防盗连,这里
没有设置缓存,如果访问量巨大,我想设置下就会更好吧。
第三种:
最简单的用Active Server Pages防站外提交表单、跨站提交表单、防盗链……
方法:Request.SeverVariables("HTTP_REFERER")
解释:当某人通过链接到达当前页,HTTP_REFERER 就保存了这个用户的来源(来路)
举个例子,这个例子很简单,只是抛砖引玉而已,大家可以增加更多的功能。
如下,只有首先从“ http://www.ITstudy.cn”登陆才能看到文件内容。
源码:index.asp
复制代码 代码如下:
<html>
<head><title>最简单的用asp防盗链</title></head>
<body>
<%
Option.Explicit
Response.Buffer=Ture
%>
<%
CheckUrl("http://ITstudy.cn/index.jsp")
%>
<%
Function CheckUrl(url)
Dim Where:Where=Request.SeverVariables("HTTP_REFERER")
If Where=url Then
Call main()
Else
Response.write("很抱歉,您必须从"&url&"访问才能进来!")
End if
End Function
%>
<%
Sub main()
Response.write("这儿是你要显示的网页内容")
End sub
%>
</body>
</html>

该方法对防止盗链文章、站外提交表单、跨站提交表单还比较有效,对于软件盗链比如.rar.zip.exe等倒没什么作用。
不知各位读者是否有好的主意,呵呵。
还有一种方法就是用判断服务器及上一页的地址来完成。
复制代码 代码如下:
<%
dim from, local
from = request.ServerVariables("HTTP_REFERER")
local = request.ServerVariables("SERVER_NAME")
If mid(from, 8, local)<>Len(local) Then
response.write "不要从外部提交数据"
else
call main()
end if
sub main()
'你的主体内容
end sub
%>