xmlhttp与防盗链

xml|防盗链

我们可以用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="2006126103122804.jpg"/>

<img src="getimg.asp?imgsrc=http://www.pushad.com/XrssFile/2006-12/6/2006126103122804.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是否安装了防盗链软件,最好不要让别人盗链了。

时间: 2024-11-03 22:11:45

xmlhttp与防盗链的相关文章

asp保存远程图片(破防盗链系统)

简单实例一 这里可用到xmlhttp 和文件对象 fso,  代码如下 复制代码 <% Function SaveRemoteFile(sSavePath,sRemoteFileUrl) On Error Resume Next SaveRemoteFile = False Dim oXML : Set oXML = Server.CreateObject("Microsoft.XMLHTTP") With oXML .Open "Get",sRemoteFi

ngix-nginx搭建流服器(.m3u8+预切片.ts文件)动态生成防盗链问题(路过大神,求救)

问题描述 nginx搭建流服器(.m3u8+预切片.ts文件)动态生成防盗链问题(路过大神,求救) 我最近在搭建一个nginx rtmp流服器,使用.m3u8文件+静态预切片.ts文件:安全考虑需要增加防盗链功能:针对单个.m3u8文件请求增加防盗链没有问题:但是生成.ts动态防盗链有一些问题: 生成.ts动态防盗链方法: 将.m3u8防盗链key=xxxx赋值给.ts(使用ngx_http_substitutions_filter_module-master模块替换内容 .ts 替换成 .ts

asp防盗链技术的使用

我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp,我们就可以用ht

asp防盗链源码

防盗链  如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51Windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用ASP来隐藏文件的实际下载路径.       我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为d

推荐一个免费的防盗链软件给大家用哈(无限制完全功能版)

[local]思达防盗链专用下载服务器(无限制免费版).rar   [/local] [升级说明]   特别说明:注册用户为了保留注册信息,请将原来的Config文件夹拷贝到新程序目录覆盖Config文件夹                1.2007-5-25 升级1.1版        a) 修改了内核处理,进一步提高服务器性能        b) 修改了原来asp的md5加密不能通过验证的问题        c) 添加了限速功能,可设置每个连接限制下载速度        [功能] 运行平台:

如何防盗链?如何伪静态?(win2003+iis+ISAPI

iis|防盗链|伪静态 前提你要自己有服务器, 然后下载:http://www.helicontech.com/download.asp 接着安装,随便装哪都行. 然后,打开Internet 信息服务,右键,web站点属性,点ISAPI筛选器选项卡.添加筛选器,名称填个rewrite,路径自己指定ISAPI_Rewrite.dll(在安装的根目录下),然后确定. 设置扩展: 右击我的电脑--管理--服务与应用程序--Internet信息服务(IIS)管理--Web服务扩展--添加一个新的Web服

用Asp隐藏文件路径实现防盗链

防盗链|防盗链 如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用Asp来隐藏文件的实际下载路径. 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down

CSS实现简单的图片防盗链代码

css|防盗链 实现方法很简单,在CSS中添加以下代码: img { filter:expression( this.不能去掉 ? "" : ( (!this.complete) ? "" : this.runtimeStyle.filter = ("progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "')") + String(thi

大灰狼的ASP工具箱——防盗链、判断星期几

防盗链|防盗链   防盗链 <% http=Request.ServerVariables("HTTP_REFERER") http2=Cstr(Request.ServerVariables("SERVER_NAME"))if mid(http,8,len(http2))<>http2 then   response.write "本站禁止从外部站点下载!"else   response.redirect "down