PHP伪造referer实例代码


Posted in PHP onSeptember 20, 2008

这里就直接给出完整的程序吧,具体的应用可以自己修改。
我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用。比如隐藏真实的URL地址……嘿嘿,具体的就自己分析去吧
这里新建一个文件file.php。后面的参数就是需要伪造referfer的目标地址吧。如:file.php/http://www.xxx.xxx/xxx.mp3

<? 
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);//得出需要转换的网址。这里我就偷懒,不做安全检测了,需要的自己加上去 
$downfile=str_replace(" ","%20",$url);//替换空格之类,可以根据实际情况进行替换 
$downfile=str_replace("http://","",$downfile);//去掉http:// 
$urlarr=explode("/",$downfile);//以"/"分解出域名 
$domain=$urlarr[0];//域名 
$getfile=str_replace($urlarr[0],'',$downfile);//得出header中的GET部分 
$content = @fsockopen("$domain", 80, $errno, $errstr, 12);//连接目标主机 
if (!$content){//链接不上就提示错误 
die("对不起,无法连接上 $domain 。"); 
} 
fputs($content, "GET $getfile HTTP/1.0\r\n"); 
fputs($content, "Host: $domain\r\n"); 
fputs($content, "Referer: $domain\r\n");//伪造部分 
fputs($content, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n\r\n"); while (!feof($content)) { 
$tp.=fgets($content, 128); 
if (strstr($tp,"200 OK")){ //这里要说明一下。header的第一行一般是请求文件的状态。具体请参照HTTP 1.1状态代码及其含义 hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html这里是正常的文件请求状态,只需直接转向就可以。其他状态的继续执行程序 
header("Location:$url"); 
die(); 
} 
} 
//302 转向,大部分的防盗链系统都是先判断referfer,对了的话再转向真实的地址。下面就是获取真实的地址。 
$arr=explode("\n",$tp); 
$arr1=explode("Location: ",$tp);//分解出Location后面的真时地址 
$arr2=explode("\n",$arr1[1]); 
header('Content-Type:application/force-download');//强制下载 
header("location:".$arr2[0]);//转向目标地址 
die(); 
?>

这段程序只能针对使用referer来判断是否盗链的防盗链系统,使用其他特殊方法防盗链的,这个估计就不适用了
PHP 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP之autoload运行机制实例分析
Aug 28 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php实现转换ubb代码的方法
Jun 18 PHP
PHP生成树的方法
Jul 28 PHP
PHP云打印类完整示例
Oct 15 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
PHP 对象继承原理与简单用法示例
Apr 21 PHP
PHP面向对象分析设计的经验原则
Sep 20 #PHP
php 301转向实现代码
Sep 18 #PHP
PHP Squid中可缓存的动态网页设计
Sep 17 #PHP
PHP cron中的批处理
Sep 16 #PHP
FleaPHP的安全设置方法
Sep 15 #PHP
用PHP调用Oracle存储过程的方法
Sep 12 #PHP
php5新改动之短标记启用方法
Sep 11 #PHP
You might like
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Python利用命名空间解析XML文档
2020/08/10 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
申论倡议书范文
2014/05/13 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
导游词格式
2015/02/13 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
MySQL触发器的使用
2021/05/24 MySQL
python 实现体质指数BMI计算
2021/05/26 Python
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android