仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 444|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之用Asp埋没文件路径完成防盗链

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:46:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件防盗链|防盗链假如我们晓得一个静态文件的实践路径如: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"))
ifmid(From_url,8,len(Serv_url))Serv_urlthen
response.write"不法链接!"避免盗链
response.end
endif
ifRequest.Cookies("Logined")=""then
response.redirect"/login.asp"必要上岸!
endif
FunctionGetFileName(longname)/folder1/folder2/file.asp=>file.asp
whileinstr(longname,"/")
longname=right(longname,len(longname)-1)
wend
GetFileName=longname
EndFunction
DimStream
DimContents
DimFileName
DimTrueFileName
DimFileExt
ConstadTypeBinary=1
FileName=Request.QueryString("FileName")
ifFileName=""Then
Response.Write"有效文件名!"
Response.End
Endif
FileExt=Mid(FileName,InStrRev(FileName,".")+1)
SelectCaseUCase(FileExt)
Case"ASP","ASA","ASPX","ASAX","MDB"
Response.Write"不法操纵!"
Response.End
EndSelect
Response.Clear
iflcase(right(FileName,3))="gif"orlcase(right(FileName,3))="jpg"orlcase(right(FileName,3))="png"then
Response.ContentType="image/*"对图象文件不呈现下载对话框
else
Response.ContentType="application/ms-download"
endif
Response.AddHeader"content-disposition","attachment;filename="&GetFileName(Request.QueryString("FileName"))
SetStream=server.CreateObject("ADODB.Stream")
Stream.Type=adTypeBinary
Stream.Open
iflcase(right(FileName,3))="pdf"then设置pdf范例文件目次
TrueFileName="/the_pdf_file_s/"&FileName
endif
iflcase(right(FileName,3))="doc"then设置DOC范例文件目次
TrueFileName="/my_D_O_C_file/"&FileName
endif
iflcase(right(FileName,3))="gif"orlcase(right(FileName,3))="jpg"orlcase(right(FileName,3))="png"then
TrueFileName="/all_images_/"&FileName设置图象文件目次
endif
Stream.LoadFromFileServer.MapPath(TrueFileName)
WhileNotStream.EOS
Response.BinaryWriteStream.Read(1024*64)
Wend
Stream.Close
SetStream=Nothing
Response.Flush
Response.End
%>
</p>想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的
蒙在股里 该用户已被删除
沙发
发表于 2015-1-20 11:44:10 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-29 07:00:16 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
地板
发表于 2015-2-2 22:06:21 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
简单生活 该用户已被删除
5#
发表于 2015-2-8 10:00:26 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
活着的死人 该用户已被删除
6#
 楼主| 发表于 2015-2-25 08:47:59 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
小魔女 该用户已被删除
7#
发表于 2015-3-7 18:25:49 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
若相依 该用户已被删除
8#
发表于 2015-3-15 11:23:20 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
柔情似水 该用户已被删除
9#
发表于 2015-3-22 00:12:40 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 07:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表