高分求ASP代码★★★★★关于防止盗链

newKoala 2004-08-11 10:04:48
目前我看比较有效的防止盗链的方法就只有是定期的更新自己的文件夹的路径了

我在一个WEB的目录下面建立一个存放下载文件的文件夹X

通过htpp://x.x.x.x/文件夹X/文件名称 来访问文件
…………
这个的部分使用ASP程序动态的修改

现在是寻求一个ASP代码 可以实现上述的功能

引用的时候 是类似的形式
htpp://x.x.x.x/download.asp?filename=hello.zip

使用FLASHGET或者右键另存为就可以下载到真实的文件

...全文
187 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
newKoala 2004-08-25
我主要是想把MP3文件免费提供给我的论坛的注册用户
但是不希望非登陆用户下载音乐文件,给服务器造成不必要的负担
此外我的音乐文件希望通过SERV-U来提供
目的是希望可以控制带宽 防止下载的人太多 把服务器下崩溃

寻求方案 解决好后 用万首MP3答谢各位
回复
evafly920 2004-08-12
mark

中国无忧商务网(http://www.cn5135.com)
志同道合的朋友可以一起来做,让我们一起把它做大做强!
MSN:eFongNet@Hotmail.com QQ:7733349
回复
butcher2002 2004-08-12
建议你可以通过每天自动更改文件夹名字,也就是改路径的方法防止盗链

你文件路径应该是从数据库读的吧~就从数据库里改,批量改就可以了~
回复
海大富运动 2004-08-12
up
回复
学习下~~好像很多下载站点都是到另外一个页面然后再加判断之类然后进行跳转的~
回复
newKoala 2004-08-12
清晨自己顶!!!
回复
happyweidy 2004-08-11
单纯用asp代码来实现防盗链效果是不太理想的,特别是楼主说的修改路径,如果你修改的时候有很多人正在下载怎么办??二楼的方法还是不错的,不过效率是有问题的,不知道能不能续传,而且用户随便发送欺骗的head请求就可以下了。IIS里可以做一个isapi过滤,在下载的文件后面加参数判断,ftp可以通过动态用户名实现,realserver的方法就更多了,呵呵。
欢迎到我的站http://www.uudog.com/一起来讨论防盗连技术。
回复
newKoala 2004-08-11
BlueDestiny(蓝色||命运) 你好

你的这个方法 如果别人看一下代码 好像仍然可以被发现真实的连接吧

此外 我突然有这样的一个问题
就是不光要限制盗链 同时还要考虑服务器的负载问题 也就是带宽的限制以及登陆人数的限制 防止因为下载影响正常的页面访问 还有就是防止人数过多导致 服务器不堪重负
回复
BillSmiph 2004-08-11
mark
回复
BlueDestiny 2004-08-11
我收藏的一个防盗链的方法,不知道对你有没有用
----------------------------------------------------
<%
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

if Request.Cookies("Logined")="" then
response.redirect "/login.asp" '需要登陆!
end if
Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
while instr(longname,"/")
longname = right(longname,len(longname)-1)
wend
GetFileName = longname
End Function
Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名!"
Response.End
End if
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "非法操作!"
Response.End
End Select
Response.Clear
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
Response.ContentType = "image/*" '对图像文件不出现下载对话框
else
Response.ContentType = "application/ms-download"
end if
Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
if lcase(right(FileName,3))="pdf" then '设置pdf类型文件目录
TrueFileName = "/the_pdf_file_s/"&FileName
end if
if lcase(right(FileName,3))="doc" then '设置DOC类型文件目录
TrueFileName = "/my_D_O_C_file/"&FileName
end if
if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
TrueFileName = "/all_images_/"&FileName '设置图像文件目录
end if
Stream.LoadFromFile Server.MapPath(TrueFileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
回复
newKoala 2004-08-11
自己顶一下
着急啊

我现在就在等着解决好盗链问题
然后把我的几千首MP3歌曲放出去
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-08-11 10:04
社区公告
暂无公告