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 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
php反弹shell实现代码
Apr 22 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
mac下安装nginx和php
Nov 04 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
php导出生成word的方法
2015/12/25 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
js中arguments对象的深入理解
2019/05/14 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
js实现星星打分效果
2020/07/05 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
浅谈python锁与死锁问题
2020/08/14 Python
10个顶级Python实用库推荐
2021/03/04 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
一些PHP的面试题
2015/05/06 面试题
介绍一下gcc特性
2015/10/31 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
住房公积金接收函
2014/01/09 职场文书
经典婚礼主持词
2014/03/13 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
警校毕业生自我评价
2014/04/06 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python