完美兼容各大浏览器获取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实现清除指定cookies的方法
Sep 20 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
Nov 25 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
JavaScript两个变量交换值的实现方法
Mar 01 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
Nov 20 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过滤表单提交的html等危险代码
2014/11/03 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
python下MySQLdb用法实例分析
2015/06/08 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
Django celery异步任务实现代码示例
2020/11/26 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
好的自荐信包括什么内容
2013/11/07 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
质检部经理岗位职责
2014/02/19 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS