完美兼容各大浏览器获取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 相关文章推荐
jQuery Mobile 导航栏代码
Nov 01 Javascript
Express.JS使用详解
Jul 17 Javascript
JavaScript中的方法重载实例
Mar 16 Javascript
JS简单实现城市二级联动选择插件的方法
Aug 19 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
全站最详细的Vuex教程
Apr 13 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
JS实现的类似微信聊天效果示例
Jan 29 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实现产品加入购物车功能(1)
2020/07/23 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
input的focus方法使用
2010/03/13 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
Sea.JS知识总结
2016/05/05 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JavaScript字符串检索字符的方法
2017/06/23 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
js实现动态增加文件域表单功能
2018/10/22 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
详解Python中的Descriptor描述符类
2016/06/14 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
QML使用Python的函数过程解析
2019/09/26 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python实现异步IO的示例
2020/11/05 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
文员自我评价怎么写
2013/09/19 职场文书
四年大学生活的个人自我评价
2013/12/11 职场文书
道德模范先进事迹
2014/02/14 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
重阳节活动总结
2014/08/27 职场文书
假期安全教育广播稿
2014/10/04 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
回复函格式及范文
2015/07/14 职场文书