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 相关文章推荐
PHP实现网上点歌(二)
Oct 09 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
PHP注释实例技巧
Oct 03 PHP
ajax+php打造进度条代码[readyState各状态说明]
Apr 12 PHP
php防注入及开发安全详细解析
Aug 09 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP中header用法小结
May 23 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 PHP
PHP使用非对称加密算法RSA
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生成curl命令行的方法
2015/12/14 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Node.js的特点和应用场景介绍
2014/11/04 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
opencv python 傅里叶变换的使用
2018/07/21 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
如何一键升级Python所有包
2020/11/05 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
一份比较全的PHP面试题
2016/07/29 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
管理部部长岗位职责
2013/12/05 职场文书
高一家长会邀请函
2014/01/12 职场文书
大学生职业生涯规划书范文
2014/01/14 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技