完美兼容各大浏览器获取HTTP_REFERER方法总结


Posted in Javascript onJune 24, 2014

后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂 IE 的浏览器,很多浏览器运行的很好的东西,它就是不支持,最后没有办法,只能PHP伪造来源HTTP_REFERER的方法或者用JS来伪造。

IE可以识别的 HTTP_REFERER 提交是通过click 触发的事件或者是 Form 表单提交的请求,下面是根据网上的资料总结的一个方法:

<script>
function referURL(url){
var isIe=(document.all)?true:false;
if(isIe) {
var linka = document.createElement(‘a');
linka.href=url;
document.body.appendChild(linka);
linka.click();
}
else window.location = url;
}

var url=”https://3water.com”;
referURL(url);
</script>

这个方法先是用 document.all 来判断当前的浏览器是否是IE, 如果是的话就生成一个link,然后自动执行 onclick 事件,如果不是的话就用JS 跳转。这样在处理页面就可以得到 HTTP_REFERER 了

此方法在IE, Firefox, Safari , Chrome 测试通过

2. PHP利用curl伪造IP和来路HTTP Referrer

referer.php

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mydomain.com/ip.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //构造IP
curl_setopt($ch, CURLOPT_REFERER, "https://3water.com/ ");  //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out = curl_exec($ch);
curl_close($ch);

echo $out;

ip.php

<?php
function getClientIp() {
if (!empty($_SERVER["HTTP_CLIENT_IP"]))
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if (!empty($_SERVER["REMOTE_ADDR"]))
$ip = $_SERVER["REMOTE_ADDR"];
else
$ip = "err";
return $ip;
}
echo "IP: " . getClientIp() . "<br>";
echo "referer: " . $_SERVER["HTTP_REFERER"];
Javascript 相关文章推荐
javascript实现仿腾讯游戏选择
May 14 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
页面内容排序插件jSort使用方法
Oct 10 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
Jan 04 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
Js通过AES加密后PHP用Openssl解密的方法
Jul 12 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 #Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 #Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 #Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 #Javascript
js实现div闪烁原理及实现代码
Jun 24 #Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 #Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
Jun 24 #Javascript
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
PHP学习之PHP运算符
2006/10/09 PHP
PHP新手上路(五)
2006/10/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
JavaScript Prototype对象
2009/01/07 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
JavaScript实现多栏目切换效果
2016/12/12 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
Python yield 使用方法浅析
2017/05/20 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书