PHP伪造referer实例代码

 更新时间:2008年09月20日 00:59:13   作者:  
伪造referer实例代码,主要用于一些突破防盗链
这里就直接给出完整的程序吧,具体的应用可以自己修改。
我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用。比如隐藏真实的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 strripos函数用法总结

    PHP strripos函数用法总结

    在本篇文章里小编给大家分享了关于PHP strripos函数用法知识点,有兴趣的朋友们学习下。
    2019-02-02
  • PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法

    PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法

    这篇文章主要介绍了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法,实例分析了strncmp()函数的功能,参数用法与使用技巧,需要的朋友可以参考下
    2016-01-01
  • PHP垃圾回收机制超详细介绍

    PHP垃圾回收机制超详细介绍

    垃圾回收机制是一种动态存储分配的方案。它会自动释放程序不再需要的已分配的内存块。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑
    2022-08-08
  • php文件上传原理与实现方法详解

    php文件上传原理与实现方法详解

    这篇文章主要介绍了php文件上传原理与实现方法,结合实例形式详细分析了PHP文件上传的配置、前后台处理、错误处理等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-12-12
  • PHP读MYSQL中文乱码的快速解决方法

    PHP读MYSQL中文乱码的快速解决方法

    下面小编就为大家带来一篇PHP读MYSQL中文乱码的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • PHP实现websocket通信的方法示例

    PHP实现websocket通信的方法示例

    这篇文章主要介绍了PHP实现websocket通信的方法,结合实例形式分析了php基于websocket类的socket通信相关客户端与服务器端操作技巧,需要的朋友可以参考下
    2018-08-08
  • 适用于php-5.2 的 php.ini 中文版[金步国翻译]

    适用于php-5.2 的 php.ini 中文版[金步国翻译]

    最近服务器基本上都是使用了php 5.2.*,以前发布的版本的php.ini已经不适用于现在的版本了,特发现了这篇文章特分享给大家。
    2011-04-04
  • PHP使用标准库spl实现的观察者模式示例

    PHP使用标准库spl实现的观察者模式示例

    这篇文章主要介绍了PHP使用标准库spl实现的观察者模式,结合实例形式分析了php基于spl标准库的观察者模式相关实现与使用操作技巧,需要的朋友可以参考下
    2018-08-08
  • PHP 信号管理知识整理汇总

    PHP 信号管理知识整理汇总

    这篇文章主要给大家整理汇总了PHP 信号管理知识的相关资料,需要的朋友可以参考下
    2017-02-02
  • nginx+thinkphp下解决不支持pathinfo模式

    nginx+thinkphp下解决不支持pathinfo模式

    这篇文章主要介绍了nginx+thinkphp下解决不支持pathinfo模式的相关资料,需要的朋友可以参考下
    2015-07-07

最新评论