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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
php面向对象全攻略 (十) final static const关键字的使用
Sep 30 PHP
PHP中遍历stdclass object的实现代码
Jun 09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
php接口实现拖拽排序功能
Apr 23 PHP
thinkphp5框架扩展redis类方法示例
May 06 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python实现教务管理系统
2018/03/12 Python
Python3爬楼梯算法示例
2019/03/04 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
如何利用python发送邮件
2020/09/26 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
群众路线剖析材料
2014/02/02 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
Python List remove()实例用法详解
2021/08/02 Python