一种盗链的简单方法(转载至http://blog.donews.com/tabris17/archive/2004/08/14/68448.aspx)
2008-09-10 15:50
471 查看
有时我们会在搜索引擎查找到一些要下载的软件,当我们从搜索结果的超链接转到下载页面时,下载站点会显示:您的连接并非来自本站……,之类云云。那目标站
点是如何判断我们的链接不是来自自己的站点的呢?其实,HTTP协议规定,当请求一个页面时,必须将指向该页面的URL包含在HTTP头中,也就是说,你
必须告诉服务器你是从那里来的。当我们从搜索引擎的链接连过去时,浏览器会老老实实地把搜索引擎的结果页面的URL发送到目标服务器。以下是IE浏览器发
送的HTTP头的完整信息:
GET /test.htm HTTP/1.1
Accept: */*
Referer: http://www.20cn.net/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)
Host: localhost
Connection: Keep-Alive
其中referer头标注了我们的链接是从那里来的。也许你会注意到,有时你用flashget之类的软件下载东西,必须填写“引用”,指的就是这个东西。
你可能会不得不在自己的网页里放一个别的网站的链接,而那个网站的页面都有防盗链的处理,那该怎么办呢?有没有办法构造这个“引用”信息呢?其实,只需一个简单的HTML标签就可以搞定:<base href="http://target.com">,这里的target.com就是那个防盗链的网站。
要注意的是,使用了这个标签后,在你的页面中所有相对路径必须改成绝对路径,而原先对target.com适用的绝对路径要改成相对路径,如:<img src="img/a.jpg">改成<img src="http://yoursite.com/page_path/img/a.jpg">,而<a href="http://target.com/file_path/test.cgi?id=123">改成<a href="file_path/test.cgi?id=123">
点是如何判断我们的链接不是来自自己的站点的呢?其实,HTTP协议规定,当请求一个页面时,必须将指向该页面的URL包含在HTTP头中,也就是说,你
必须告诉服务器你是从那里来的。当我们从搜索引擎的链接连过去时,浏览器会老老实实地把搜索引擎的结果页面的URL发送到目标服务器。以下是IE浏览器发
送的HTTP头的完整信息:
GET /test.htm HTTP/1.1
Accept: */*
Referer: http://www.20cn.net/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)
Host: localhost
Connection: Keep-Alive
其中referer头标注了我们的链接是从那里来的。也许你会注意到,有时你用flashget之类的软件下载东西,必须填写“引用”,指的就是这个东西。
你可能会不得不在自己的网页里放一个别的网站的链接,而那个网站的页面都有防盗链的处理,那该怎么办呢?有没有办法构造这个“引用”信息呢?其实,只需一个简单的HTML标签就可以搞定:<base href="http://target.com">,这里的target.com就是那个防盗链的网站。
要注意的是,使用了这个标签后,在你的页面中所有相对路径必须改成绝对路径,而原先对target.com适用的绝对路径要改成相对路径,如:<img src="img/a.jpg">改成<img src="http://yoursite.com/page_path/img/a.jpg">,而<a href="http://target.com/file_path/test.cgi?id=123">改成<a href="file_path/test.cgi?id=123">
相关文章推荐
- html做的记事本(转至http://blog.donews.com/tabris17/archive/2004/06/01/24230.aspx)
- eclipse中安装ADT插件的最简单的方法转载自http://www.cnblogs.com/go-onxp/archive/2012/05/22/android.html
- 破译动网验证码的简单方法 http://blog.csdn.net/wwqna/archive/2004/11/13/A1.aspx
- Sql Server 生成连续日期的方法总结 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GRANDTREE/archive/2009/06/16/4273129.aspx
- 预防SQL注入攻击之我见[转载http://blog.csdn.net/jyk/archive/2009/11/26/4882097.aspx]
- C++ 事件机制实现(转载自http://blog.csdn.net/khler/archive/2007/08/07/1729638.aspx)
- GDI中的坐标映射问题 (转载自http://blog.csdn.net/huawdai/archive/2002/01/15/6169.aspx)
- 创建一个filter实例(transform filter)【转载http://blog.csdn.net/captain_x/archive/2007/08/10/1737619.aspx】
- 一种简单方法实现页面导出(Excel)功能 选择自 xieyun1977 的 Blog
- 做了个非常简单的Flash验证码(附源代码) 转载于http://www.cordyblog.cn/?action=show&amp;id=68
- 转载http://blog.csdn.net/jojoaric/archive/2006/10/17/1338763.aspx
- Spring中单例bean访问非单例bean的第一种方式:方法注入(转http://blog.csdn.net/ayueiloveyou/archive/2008/08/03/2760473.aspx)
- 数据挖掘和知识发现的技术、方法及应用 --------http://blog.csdn.net/gongfs/archive/2006/03/17/627244.aspx
- 直接调用类成员函数地址(转载自http://blog.csdn.net/shamozhihuzhubohu/archive/2010/07/30/5776979.aspx)
- 动态加载JS脚本的4种方法[转自http://hi.baidu.com/ajax] http://www.cnitblog.com/yemoo/archive/2007/07/19/30222.html
- 转载:org.hibernate.tuple.AbstractEntityTuplizer.createProxy错误的一种解决(http://www.blogjava.net/tantanxiaos
- CString 的方法(from:http://blog.csdn.net/lijuwen/archive/2006/03/13/623186.aspx)
- Linux检测TCP连接断开的一种简单实现方法http://blog.csdn.net/wtewrw/article/details/6547380
- RAC的GCS和GES 转载自http://blog.csdn.net/csucxcc/archive/2010/09/02/5857373.asp
- c#读取并修改App.config文件实例(转载:http://blog.csdn.net/abuhome/archive/2010/01/13/5184467.aspx)