完美兼容各大浏览器获取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 09 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
jQuery easyui datagrid动态查询数据实例讲解
Feb 26 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
May 17 Javascript
为你的微信小程序体积瘦身详解
May 20 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
Angular6新特性之Angular Material
Dec 28 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脚本的10个技巧(1)
2006/10/09 PHP
PHP开发框架总结收藏
2008/04/24 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
python求素数示例分享
2014/02/16 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python 2.7.14安装图文教程
2018/04/08 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
python中常用的数据结构介绍
2021/01/12 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
如何利用find命令查找文件
2016/11/18 面试题
网络维护管理员的自我评价分享
2013/11/11 职场文书
给学校的建议书
2014/03/12 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
解除劳动合同协议书
2014/09/17 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
奖学金申请书(范文)
2019/08/14 职场文书