完美兼容各大浏览器获取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 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
JavaScript 数组运用实现代码
Apr 13 Javascript
JS Date函数整理方便使用
Oct 23 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
jQuery仿写百度百科的目录树
Jan 03 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
详解Vue双向数据绑定原理解析
Sep 11 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 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
PHP 数组实例说明
2008/08/18 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
python实现UDP协议下的文件传输
2020/03/20 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
银河香水:Galaxy Perfume
2019/03/25 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
夜不归宿检讨书
2014/02/25 职场文书
网络编辑岗位职责
2014/03/18 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
爱护花草树木的标语
2014/06/11 职场文书