php 伪造HTTP_REFERER页面URL来源的三种方法


Posted in PHP onSeptember 22, 2016

php获取当前页面的前一个页面URL地址,即当前页面是从哪个页面链接过来的,可以使用$_SERVER['HTTP_REFERER'],但是这个来源页面的URL地址是可以被伪造和欺骗的,本文章向大家介绍伪造HTTP_REFERER页面URL的三种方法,需要的朋友可以参考一下。

$_SERVER['HTTP_REFERER']是php用来判断页面上级来源页面的一个超级变局变量了,我们可以使用$_SERVER['HTTP_REFERER']来判断是从哪个页面进入到此页面了,这样我们可以进行更好的跟踪了。

但是$_SERVER['HTTP_REFERER']也是可以被伪造欺骗的,有三种方法可以伪造和欺骗$_SERVER['HTTP_REFERER']

第一种方法:file_get_contents

$opt=array('http'=>array('header'=>"Referer: $refer")); 
$context=stream_context_create($opt); 
$file_contents = file_get_contents($url,false, $context);

file_get_contents中stream_context_create就伪造来源的重要参数了。 

第二种方法:CURL

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, "http://www.manongjc.com"); 
curl_setopt ($ch, CURLOPT_REFERER, "http://www.manongjc.com"); 
curl_exec ($ch); 
curl_close ($ch);

参数http://www.manongjc.com就是伪造的URL地址。

第三种方法:fsockopen

$server = 'www.manongjc.com'; 
$host = 'www.manongjc.com'; 
$target = 'index.php'; 
$referer = 'http://www.manongjc.com/'; // Referer 
$port = 80; 
$fp = fsockopen($server, $port, $errno, $errstr, 30); 
if (!$fp){ 
 echo "$errstr ($errno)\n"; 
}else{ 
$out = "GET $target HTTP/1.1\r\n"; 
$out .= "Host: $host\r\n"; 
$out .= "Referer: $referer\r\n"; 
$out .= "Connection: Close\r\n\r\n"; 
fwrite($fp, $out); 
while (!feof($fp)){ 
echo fgets($fp, 128); 
} 
fclose($fp); 
}

上面三种方法中,第三种方法fsockopen性能和效果上是最好的,因此推荐大家使用第三种方法。

以上就是对PHP伪造HTTP_REFERER页面URL来源的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

PHP 相关文章推荐
php读取30天之内的根据算法排序的代码
Apr 06 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 #PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 #PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 #PHP
php支付宝在线支付接口开发教程
Sep 19 #PHP
iOS10推送通知开发教程
Sep 19 #PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 #PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 #PHP
You might like
十天学会php之第一天
2006/10/09 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
js数组的基本使用总结
2021/01/18 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Python时间获取及转换知识汇总
2017/01/11 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
python中with用法讲解
2020/02/07 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
领班岗位职责范文
2014/02/06 职场文书
离婚协议书格式
2014/11/21 职场文书
结婚通知短信大全
2015/04/17 职场文书
植树节新闻稿
2015/07/17 职场文书
提档介绍信范文
2015/10/22 职场文书
财务年终工作总结大全
2019/06/20 职场文书
nginx设置资源请求目录的方式详解
2022/05/30 Servers