ASP图片防盗链/隐藏图片地址源代码

idcbe.com

好的图片当然希望多些人分享,但是如果个个都链你网站就不好了,这样会造成网站负荷过重,浪费空间资源。

如何防止别人盗链网站上的图片呢?最主要的是要隐藏图片的真实地址,通过一个ASP文件来调用图片,而只有特定的域名才能引用,如果不是就只显示一张警示图,盗链的根本不知道图片的真正地址,他偷鸡不成还蚀把米--得不到图片内容还影响网站形象,自然就会放弃盗链。

这样做还有一个好处,就是假如某天要删掉了图片,而网页没有做更新,这样仍然不会令图片处留白或叉叉,而会自动补充一张提示图。

完整代码如下:(可起名:img.asp)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Option Explicit

Function ReadBinFile(fileName)
 Dim objStream,bin
 Set objStream = Server.CreateObject("ADODB.Stream")
 objStream.Open
 objStream.Type = 1
 objStream.LoadFromFile fileName 
    bin = objStream.Read
 objStream.Close
 ReadBinFile = bin
End Function
Function isSelfRefer() 
Dim sHttp_Referer, sServer_Name, vServer_Name
vServer_Name = "tu.jkqun.com"'允许的域名 可使用根域名泛指全部子域名
sServer_Name =  CStr(Request.ServerVariables("HTTP_REFERER"))'本图片的当前引用地址
if instr(sServer_Name,vServer_Name)<>0 then
IsSelfRefer = True 
Else 
IsSelfRefer = False 
End If 
End Function 
if request.QueryString()<>"" then
 Dim RealUrl,fso,ErrImg,ImgServPath
 ErrImg = "/Antilink_icon.jpg"
 Dim curImg:curImg=Request.QueryString()
 ImgServPath = "http://tu.jkqun.com/"&curImg
 RealUrl=Server.MapPath(ImgServPath)
 Set fso = Server.CreateObject("Scripting.FileSystemObject")
 if Not(fso.FileExists(RealUrl)) then RealUrl=Server.MapPath(ErrImg)
 
 if Not(isSelfRefer) then
 RealUrl=Server.MapPath(ErrImg)
 end if
 response.contenttype = "image/jpeg" 
 response.BinaryWrite ReadBinFile(RealUrl)
 response.end
end if
%>

看美女,欢迎访问:美女图片网



[本日志由 edwin 于 2010-10-30 12:29 AM 编辑]
文章来自: 网络
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 防盗链 图片 隐藏地址
评论: 1 | 引用: 0 | 查看次数: 10425
回复回复阿帆[2010-12-28 01:11 PM | del]
怎么引用呢?
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 50 字 | UBB代码 关闭 | [img]标签 关闭
idcbe.com