破解图片防盗链系统(ASP小偷代码)

<% 
'盗链判断 
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™ 
                '重设置过期时间 
                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 
%> 

这些代码可以有效的破解图片防盗链系统.如网易相册.直接把下面的代码保存成pic.asp,然后用pic.asp?url=图片路径的方式调用即可.增加了缓存技术.效果不错.希望有高人帮我转成PHP代码(如果缓存技术比较慢.可以省略).  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值