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+javascript液晶时钟
Oct 09 PHP
如何写php程序?
Dec 08 PHP
smarty section简介与用法分析
Oct 03 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
codeigniter发送邮件并打印调试信息的方法
Mar 21 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
php给数组赋值的实例方法
Sep 26 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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实现的随机广告显示代码
2007/06/14 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
详解vue中axios的封装
2018/07/18 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
python实现二维插值的三维显示
2018/12/17 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
Overload和Override的区别
2012/09/02 面试题
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2016年小学生寒假总结
2015/10/10 职场文书