ASP图片防盗链/隐藏图片地址源代码
作者:edwin 日期:2010-10-30
好的图片当然希望多些人分享,但是如果个个都链你网站就不好了,这样会造成网站负荷过重,浪费空间资源。
如何防止别人盗链网站上的图片呢?最主要的是要隐藏图片的真实地址,通过一个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
%>
看美女,欢迎访问:美女图片网