登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

唐老鴨(kenltx)的博客

物以稀为贵,月以明为贵。人以正为贵,友以挚为贵。心以诚为贵,情以真为贵。

 
 
 

日志

 
 

引用 如何防止文件被盗链?  

2010-08-13 14:11:15|  分类: 實用資料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

引用

理睬如何防止文件被盗链?

 

 

最新导航样本 - 理睬 - 理睬

      

  我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为

down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http://www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.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 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%

2008年12月8日 - 理睬 - 理 睬 

边框样本 - 理睬 - 理睬

点击以下链接浏览更精彩内容 

入门秘笈

制作技巧

电脑使用(1)

电脑使用(2)

个人情感

原创音画

常用教程

图画制作

字体制作

人文史地

诸事八卦

娱乐星闻

边框分割

精美时钟

图画素材

美眉帅哥

百科奇闻

免费电影

字体素材

日历天气

酷播放器

风水命理

奇闻怪事

军事解密

游戏素材

音画素材

综合素材

综合图库

明星博客

摩登时尚

背景顶图

做图软件

视频教程

生活宝典

报刊大全

公文写作

趣味图库

趣味制作

常用网站

搜索引擎

在线书架

极限表演

图片素材

图片欣赏

软件下载

在线字典

在线服务

博艺解答


请点击以下链接

2008年12月8日 - 理睬 - 理 睬 2008年12月8日 - 理睬 - 理 睬 

2008年12月8日 - 理睬 - 理 睬 2008年12月8日 - 理睬 - 理 睬

2008年12月8日 - 理睬 - 理 睬 2008年12月8日 - 理睬 - 理 睬

2008年12月8日 - 理睬 - 理 睬 2008年12月8日 - 理睬 - 理 睬

2009年12月7日 - 理睬 - 理睬 2009年12月7日 - 理睬 - 理睬

2008年12月8日 - 理睬 - 理 睬 2008年12月8日 - 理睬 - 理 睬

最新日志后面导航 - 理睬 - .


          温馨提示:

     1、谢谢您喜欢理睬的文章,引用后会自动生成一个代码,只要把这个代码<BLOCKQUOTE>删除后,画框才会显示完整。点击<>可以看到全部代码的最前面<BLOCKQUOTE> 和最后面</BLOCKQUOTE>  

     2、如果您觉得这篇文章值得推广,请点击下面的“推荐”,让大家分享,也算是对理睬的支持。谢谢!

  评论这张
 
阅读(305)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018