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相关说明
Jan 15 PHP
PHP详细彻底学习Smarty
Mar 27 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
php获取英文姓名首字母的方法
Jul 13 PHP
php验证手机号码
Nov 11 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
PHP代码加密的方法总结
2020/03/13 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
实例讲解React 组件
2020/07/07 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python轻松实现代码编码格式转换
2015/03/26 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python读取几个G的csv文件方法
2019/01/07 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python按钮的响应事件详解
2019/03/04 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python 去除字符串中指定字符串
2020/03/05 Python
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
体育教师工作总结的自我评价
2013/10/10 职场文书
会计专业自荐信范文
2013/12/02 职场文书
商场消防管理制度
2014/01/12 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL