首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP.NET > 有效的破解图片防盗链
【标  题】:有效的破解图片防盗链
【关键字】:
【来  源】:http://blog.csdn.net/yangtututu/archive/2006/11/11/1379090.aspx

有效的破解图片防盗链

 
<%
'盗链判断
Dim server_v1,server_v2
server_v1
=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2
=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,len(server_v2))<>server_v2 Then
Response.Write 
"非法的盗链"
Response.End
End If

Dim url, body, myCache

url 
= Request.QueryString("url")

  
Set myCache = new cache
  myCache.name 
= "picindex"&url
  
If myCache.valid Then
          body 
= myCache.value
  
Else
          body 
= GetWebData(url)
          myCache.add body,
dateadd("d",1,now)
  
End If

  
If Err.Number = 0 Then
        Response.CharSet 
= "UTF-8"
        Response.ContentType 
= "application/octet-stream"
        Response.BinaryWrite body
        Response.Flush
  
Else
        Wscript.Echo Err.Description
  
End if

'取得数据
Public Function GetWebData(ByVal strUrl)
Dim curlpath
curlpath 
= Mid(strUrl,1,Instr(8,strUrl,"/"))
Dim Retrieval
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open 
"Get", strUrl, False,"",""
.setRequestHeader 
"Referer", curlpath
.Send
GetWebData 
=.ResponseBody
End With
Set Retrieval = Nothing
End Function


'cache类

class Cache
        
private obj                                'cache内容
        private expireTime                '过期时间
        private expireTimeName        '过期时间application名
        private cacheName                'cache内容application名
        private path                        'url
        
        
private sub class_initialize()
                path
=request.servervariables("url")
                path
=left(path,instrRev(path,"/"))
        
end sub
        
        
private sub class_terminate()
        
end sub
        
        
public property get blEmpty
                
'是否为空
                if isempty(obj) then
                        blEmpty
=true
                
else
                        blEmpty
=false
                
end if
        
end property
        
        
public property get valid
                
'是否可用(过期)
                if isempty(obj) or not isDate(expireTime) then
                        valid
=false
                
elseif CDate(expireTime)<now then
                                valid
=false
                
else
                        valid
=true
                
end if
        
end property
        
        
public property let name(str)
                
'设置cache名
                cacheName=str & path
                obj
=application(cacheName)
                expireTimeName
=str & "expires" & path
                expireTime
=application(expireTimeName)
        
end property
        
        
public property let expires(tm)
                
'重设置过期时间
                expireTime=tm
                application.lock
                application(expireTimeName)
=expireTime
                application.unlock
        
end property
        
        
public sub add(var,expire)
                
'赋值
                if isempty(var) or not isDate(expire) then
                        
exit sub
                
end if
                obj
=var
                expireTime
=expire
                application.lock
                application(cacheName)
=obj
                application(expireTimeName)
=expireTime
                application.unlock
        
end sub
        
        
public property get value
                
'取值
                if isempty(obj) or not isDate(expireTime) then
                        value
=null
                
elseif CDate(expireTime)<now then
                        value
=null
                
else
                        value
=obj
                
end if
        
end property
        
        
public sub makeEmpty()
                
'释放application
                application.lock
                application(cacheName)
=empty
                application(expireTimeName)
=empty
                application.unlock
                obj
=empty
                expireTime
=empty
        
end sub
        
        
public function equal(var2)
                
'比较
                if typename(obj)<>typename(var2) then
                        equal
=false
                
elseif typename(obj)="Object" then
                        
if obj is var2 then
                                equal
=true
                        
else
                                equal
=false
                        
end if
                
elseif typename(obj)="Variant()" then
                        
if join(obj,"^")=join(var2,"^"then
                                equal
=true
                        
else
                                equal
=false
                        
end if
                
else
                        
if obj=var2 then
                                equal
=true
                        
else
                                equal
=false
                        
end if
                
end if
        
end function
end class
%
>

竖型菜单代码:【上一篇】
ASP File Manager:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 02黑客<谁动了我电脑>新闻和信息的其他来源 四
  • 用Socket发邮件的代码(可以群发)
  • 火鸟字幕合并器SubindexV0.4Build2006.3.8正式发布,简体版下载
  • 使用JSP + JAVABEAN + XML 开发的一个例子 (转自arielxp !Java)
  • 黑白上色大法:给美女化彩妆
  • PROGRESS OS级别备份数据的恢复和提取
  • VIM使用心得
  • 为wiki集成“插入代码”& AspectWeaver Step by Step AOP在线教程
  • 如何屏蔽控制台应用程序的窗口?
  • 防DDoS攻击11招
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.