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也可以?成Shell Script
Oct 09 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
php中simplexml_load_string使用实例分享
Feb 13 PHP
浅谈discuz密码加密的方式
May 22 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
php 获取文件行数的方法总结
Oct 11 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
imagettftext() 失效,不起作用
Mar 09 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
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Python3最长回文子串算法示例
2019/03/04 Python
python suds访问webservice服务实现
2020/06/26 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
2013年大学生的自我鉴定
2013/10/24 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
志愿者活动总结报告
2014/06/27 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
商标侵权律师函
2015/05/27 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python
图文详解nginx日志切割的实现
2022/01/18 Servers