ASP防盗链及防下载的方法

防盗链|下载

  如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51Windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用ASP来隐藏文件的实际下载路径。
  
    我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为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
  %>

时间: 2024-11-01 22:41:45

ASP防盗链及防下载的方法的相关文章

php怎样显示加速乐防盗链图片 一般的破解方法解决不了

问题描述 php怎样显示加速乐防盗链图片 一般的破解方法解决不了 php怎样在网站里显示加速乐防盗链图片 一般的破解方法解决不了 直接输地址可以正常显示 嵌到img标签就显示不了了http://pic.qyer.com/album/user/1104/78/QEhVRh0PYUs/index/670 解决方案 这张图片没问题.如果防盗链的话,你要自己写代码获取远程图片,设置好来源 http://www.poluoluo.com/jzxy/201406/277888.html 解决方案二: 用fi

asp防盗链原理及代码

防盗链的原理: 不直接给出服务器中真实的url,将要访问的文件放到服务器上不可访问的目录中,所以要访问的文件就必须通过asp读取文件以二进制流的类型来发送文件,如果加上来源地址和用户登录状态的判断,可以一定意义上的防止盗链. 缺点是:不过开销也会很大. 下面是两个示例的函数,没有加上权限判断. Sub downloadFile(strFile)  On error resume next  Server.ScriptTimeOut=999999  Dim S,fso,f,intFilelengt

asp防盗链技术的使用

我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp,我们就可以用ht

asp防盗链源码

防盗链  如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51Windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用ASP来隐藏文件的实际下载路径.       我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为d

使用PHP破解防盗链图片的一个简单方法_php技巧

有自己的主机一般都会设计"防盗链", 其实包括图片防盗链,和下载防盗链等,如:1.使用.htaccess设置防盗链 复制代码 代码如下: RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www\.)?jb51.net/.*$ [NC]RewriteRule \.(gif|jpg)$ http://www.jb51.net/image.gif [R,L] 2.ngin

asp 防盗链代码(彻底屏蔽迅雷,旋风,快车下载站内资源)_应用技巧

复制代码 代码如下: <% '屏蔽主流的下载工具 Dimxurl,xtool '获取浏览器AGENT xurl=lcase(Request.ServerVariables("HTTP_USER_AGENT")) '定义禁止的AGENT,下面5个包含最新版的快车,旋风和迅雷部分版本,可以自行添加! xtool="mozilla/4.0(compatible;msie5.00;windows98)"&_ "mozilla/4.0(compatib

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,

asp下载防盗链代码_应用技巧

asp下载防盗链代码第一种:  终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下:   复制代码 代码如下: <%   From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))   Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))   if mid(From_url,8,len(Serv_url)) <> 

ASP如何防止盗链或防止下载

我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down.asp,他的网上路径为http://www.xx.com/down.asp,我们就可以用http: //www.xx.com/down.asp?FileName=51windows.pdf来下载这个文件了,而且下载者无法看到这个文件实际下载路径的!在down.asp中我们还可以设置下载文件是否需要登陆,判断下载的来源页是否为外部网站,从而