如何使用ASP隐藏图片的地址和判断是否盗链
2012-04-28 13:11:34 蓝图 阅读数 979 文章标签: asp url file server function 服务器 更多
分类专栏: ASP 网页编程集
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lbuskeep/article/details/7519687
第一种方法 使用response.Redirect :
<%
Dim filename
filename=request("file")
response.Redirect "/images/" & filename & ".jpg"
%>
第二种方法 使用server.createObject("ADODB.Stream"):
<%Function DisplayPR(ImgPath)
Response.ContentType = "image/jpeg"
Dim Objstream
Set objStream = server.createObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile ImgPath
Response.BinaryWrite objStream.Read
Response.Flush
objStream.Close
Set objStream = Nothing
Response.Flush
Response.End
End Function
Dim filename
img_url=request("file")
img_url=server.mappath("/piclinks/"&img_url&".jpg")
DisplayPR(img_url)
%>
调用显示的方式 将图片的显示代码改为如下:
那么如何判断是站内的还是站外调用图片呢?(判断是否服务器端直接调用)
其实很简单,只需要在显示图片的代码之前加入下面的代码即可【如果是站外调用图片则判断为盗链,并显示被盗链后显示的指定图片】:
From_url = Cstr(Request.Servervariables("Http_referer"))
Serv_url = Cstr(Request.Servervariables("Server_name"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.Redirect "http://deerol.com/images/daolian.gif"
response.end
end If
隐藏图片实际地址,并判断是否盗链 转向指定图片的完整代码:
<%
From_url = Cstr(Request.Servervariables("Http_referer"))
Serv_url = Cstr(Request.Servervariables("Server_name"))
if mid(From_url,8,len(Serv_url)) <> Serv_url then
response.Redirect "http://deerol.com/images/daolian.gif"
response.end
end If
Dim filename
filename=request("file")
response.Redirect "/images/" & filename & ".jpg"
%>