仓酷云

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

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

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

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

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

x
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题防盗链|防盗链用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"))
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"有效/webpage/asp/041101/24.htm!"
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;200497141230.htm="&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>因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。
若天明 该用户已被删除
沙发
发表于 2015-1-19 21:50:22 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-24 22:06:43 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-2 13:29:24 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-7 21:10:28 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
若相依 该用户已被删除
6#
发表于 2015-2-23 10:57:10 | 只看该作者
那么,ASP.Net有哪些改进呢?
只想知道 该用户已被删除
7#
发表于 2015-3-7 08:15:44 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
不帅 该用户已被删除
8#
发表于 2015-3-14 15:16:49 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
乐观 该用户已被删除
9#
 楼主| 发表于 2015-3-21 10:57:46 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 10:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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