仓酷云

标题: ASP网页编程之使用:ASP复杂防盗链办法谈 [打印本页]

作者: 再现理想    时间: 2015-2-3 23:31
标题: ASP网页编程之使用:ASP复杂防盗链办法谈
减少客户内IT专业人才缺乏带来的影响。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  
%>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多. 纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码
作者: 灵魂腐蚀    时间: 2015-2-4 01:03
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者: 透明    时间: 2015-2-4 21:40
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者: 不帅    时间: 2015-2-5 07:45
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者: 小女巫    时间: 2015-2-7 01:06
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 乐观    时间: 2015-2-19 05:44
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 飘飘悠悠    时间: 2015-2-25 20:04
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 只想知道    时间: 2015-3-8 02:05
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
作者: 海妖    时间: 2015-3-15 19:33
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: admin    时间: 2015-3-17 23:10
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 再见西城    时间: 2015-3-23 09:13
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 柔情似水    时间: 2015-3-23 18:24
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 再现理想    时间: 2015-3-28 20:00
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
作者: 愤怒的大鸟    时间: 2015-4-4 11:54
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 老尸    时间: 2015-6-4 09:13
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 深爱那片海    时间: 2015-6-12 06:38
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 山那边是海    时间: 2015-6-23 12:31
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 若相依    时间: 2015-7-1 18:58
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 精灵巫婆    时间: 2015-7-10 23:05
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 第二个灵魂    时间: 2015-7-23 11:49
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 谁可相欹    时间: 2015-9-23 11:36
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2