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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
php xml-rpc远程调用
Dec 19 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
php筛选不存在的图片资源
Apr 28 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
PHP操作路由器实现方法示例
Apr 27 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 xml-rpc远程调用
2008/12/19 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
jQuery 1.0.2
2006/10/11 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
python list使用示例 list中找连续的数字
2014/01/27 Python
Python3字符串学习教程
2015/08/20 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
Python如何获取系统iops示例代码
2016/09/06 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
经典的班主任推荐信
2013/10/28 职场文书
金属材料工程个人求职的自我评价
2013/12/04 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
劳动仲裁调解书
2015/05/20 职场文书
解析Redis Cluster原理
2021/06/21 Redis
浅析Python中的随机采样和概率分布
2021/12/06 Python
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android