本文只谈论技术问题,至于涉及到的道德等问题还需要各位自己去判断。
孙子兵法有云:知己知彼,百战不殆;
所以在我们要破解防盗链前就必须先了解一些相关的原理。
什么是盗链?
盗链是指将别人网站上的内容(如:图片、音乐、软件)地址链接到自己的网站上,从而达到免得占用自己网站空间和流量的目的。
什么是防(反)盗链?
防盗链是指通过技术手段来阻止他人盗链自身网站内容。
目前常见的防盗链方式一般为以下几种
- 通过 Referer 判断访问来源来阻止盗链
- 通过Cookie 判断来阻止盗链
- 动态调用或读取文件
- 动态改面文件地址来防盗链
目前大多数防盗链方法都是基于HTTP 标准协议中的字段记录Referer 来验证是否为盗链,这亦是本文所讲述的范围。
一般是这样判断盗链嘀
- FromUrl = Cstr(Request.ServerVariables("HTTP_REFERER"))
- ServUrl = Cstr(Request.ServerVariables("SERVER_NAME"))
- If Mid(FromUrl,8,Len(ServUrl)) <> ServUrl Then
- Response.Write "非法链接!" ‘防止盗链
- Response.End
- End If
知道了盾的本质,那么我们就可以轻易构造出矛来攻破它。
在这里我们只要伪造下来源就可以越过盾的防护,直指本体。
- Function GetData(ByVal strUrl)
- Dim strSource
- strSource = Mid(strUrl,1,Instr(8,strUrl,"/"))
- Dim objXml
- Set objXml = Server.CreateObject("Microsoft.XmlHttp")
- With objXml
- .Open "Get", strUrl, False, "", ""
- .SetRequestHeader "Referer", strSource ‘ 重要:突破防盗链,设定来源为目标域
- .Send
- GetData = .ResponseBody
- End With
- Set objXml = Nothing
- End Function
为了不让内容服务器负担过重,所以可以采用缓存方式将内容缓存在本地服务器,这样就不用每次都去重新获取远程服务器内容了。
这里采用将盗链的图片数据缓存到Application 里,当数据量过多时可能会造成占用过多服务器内存资源,所以在具体使用中,可以把数据存到数据库或文件系统中来减轻本地服务器压力。
下载网易相册,雅虎相册,百度空间,QQ空间图片引用服务,ASP图片盗链程序源代码:
纳米盘下载
联想数据布落格圈圈子共享下载
评论前必须登录!
注册