xmlhttp与防盗链

我们可以用xmlhttp来读取文件信息,然后转移到客户端,这样可以隐藏文件的真实地址。从而起到一点点的防止盗链的作用。

在这个文件中,我们可以用很多方法来判断用户身份,包括来源的url,cookie数据,甚至是ip标志等。

<%@ codepage=65001%> 

<% 

Response.Buffer=False 

re_url = Lcase(Request.ServerVariables("HTTP_REFERER")) 

'获得来源页面的url 

mydomain = Lcase(Request.ServerVariables("SERVER_NAME")) 

'获得本页面域名 也可以直接指定 

if mid(re_url,8,len(mydoain)) <> mydomian then 

response.write "URL wrong" 

'or redirect 

response.end() 

end if 

%>

//niceidea 签名留念

这个是用的最多的防止盗链的方法,检查链入的页面是否是外地人,如果是外部链入,拒绝下载。 

这里更保险的办法是利用cookie验证,就象通常的点击广告后才可以看到地址的方法一样。 

最好的办法是装一个防盗链软件,asp脚本比较是基于iis的。<% 

dim file_url,objXMLHTTP 

file_url=" http://localhost/11.rar

'我们可以从数据库中读取软件 

Set objXMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP") 

objXmlHttp.open "GET",file_url,false 

objXmlHttp.send()If objXMLHTTP.Status<>"200" Then 

response.write("file missing。") 

else 

Response.ContentType = "application/octet-stream" 

Response.AddHeader "content-disposition", "attachment; filename=" & "11.rar" 

Response.BinaryWrite objXMLHTTP.responseBody 

End IfSet obiXMLHTTP=nothing 

response.end() 

%>这个办法有明显的弊端,它需要在服务器内部交换一次数据,从而加重了服务器的负担,类似于开了一个暂时的代理;这里最好设置response的缓冲属性为false,iis6.0的asp缓存大小为4m,大的文件或者多个文件的缓冲很容易让服务器当机。 

不过它的好处是防止盗链,因为这里没有发送任何关于真实地址的信息到最终的客户端。 

更有效的使用途径是解决某些站点的图片防盗链功能.

例如网易相册,就有防止跨域盗链的功能。 

下面的文件: 

<html> 

<body> 

<img src=" http://img301.photo.163.com/luomin_dvd/35412650/__scale__1_954873822.jpg"/> 

<img src="getimg.asp?imgsrc=http://img301.photo.163.com/luomin_dvd/35412650/__scale__1_954873822.jpg"/> 

</body> 

</html> 

然后另写一个getimg.asp

<% 

response.buffer=True 

dim file_url 

file_url=request.querystring("imgsrc") 

Set objXMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP") 

objXmlHttp.open "GET",file_url,false 

objXmlHttp.send() 

Response.ContentType = "image/jepg" 

Response.BinaryWrite objXMLHTTP.responseBody 

set objXMLHTTP=nothing 

%> 

你会发现,第一张图片是个×,第二张则正常。 

在使用getimg.asp的时候,注意你的iis是否安装了防盗链软件,最好不要让别人盗链了。
 
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xychen2008

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值