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中正则表达式的使用方法描述
Jul 30 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python实现复制整个目录的方法
2015/05/12 Python
Python中zfill()方法的使用教程
2015/05/20 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python中import reload __import__的区别详解
2017/10/16 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
Python timeit模块的使用实践
2020/01/13 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
总裁秘书岗位职责
2013/12/04 职场文书
设计师求职信模板
2014/05/06 职场文书
倡导文明标语
2014/06/16 职场文书
商场父亲节活动方案
2014/08/27 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle