发现一个关于浏览器兼容的问题,当用JS 执行代码 window.location.href=”http://justcoding.iteye.com” 来进行跳转的时候,Firefox 可以获取到到HTTP_REFERER页面,但是在IE中这一项为空,后来查了一些相关资料,发现在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=”http://justcoding.iteye.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, "http://www.justcoding.iteye.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"];

兼容IE和FF:获取Referer的JS和PHP方法 及 PHP利用curl伪造IP和来路相关推荐

  1. CSS兼容IE6,IE7,FF的技巧

    一.CSS HACK 以下两种方法几乎能解决现今所有HACK.翻阅很多资料,已测试可以使用. 1, !important 随着IE7对!important的支持, !important 方法现在只针对 ...

  2. PHP获取IP地址的方法,防止伪造IP地址注入攻击

    PHP获取IP地址的方法,防止伪造IP地址注入攻击 原文:PHP获取IP地址的方法,防止伪造IP地址注入攻击 PHP获取IP地址的方法 /*** 获取客户端IP地址* <br />来源:T ...

  3. php的curl如何返回值,怎么在PHP中利用CURL获取返回值

    怎么在PHP中利用CURL获取返回值 发布时间:2021-01-05 16:58:39 来源:亿速云 阅读:96 作者:Leah 怎么在PHP中利用CURL获取返回值?针对这个问题,这篇文章详细介绍了 ...

  4. ahjesus 获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome

    ahjesus 返回光标位置兼容IE,FF和Chrome, 说明更新(2013-04-24){ 今天收到反馈说这个例子没作用了,经过查证测试发现是因为使用的jquery的版本过高引起的 $(eleme ...

  5. 兼容IE和FF的js脚本做法(比较常用)[问题点数:20分]

    兼容IE和FF的js脚本做法(比较常用) [问题点数:20分] IBM_hoojo (hoojo) 等 级: 结帖率:66.67% 楼主发表于:2010-07-03 12:18:15 JScript ...

  6. 兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例[转]

    兼容IE和FF的JS HTMLEncode和HTMLDecode的完整实例,因为这个在在线编辑器和Ajax中经常用到,所以封装成函数可以直接调用,希望对大家有帮助. <html><h ...

  7. 设为首页 和 收藏本站js代码 兼容IE,chrome,ff

    设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...

  8. 从任何兼容 TWAIN 的设备获取图象的控件Dynamic Web TWAIN

    Dynamic Web TWAIN 使得你可以从任何兼容 TWAIN 的设备获取图象,并且上载扫描过的图象到网页服务器.是特别针对网页应用程序设计而提出的真实的网页扫描解决方案.它已经通过了 Lock ...

  9. JS获取DOM元素的八种方法

    什么是HTML DOM 文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口.简单理解就是HTML DOM 是关于如何获取.修改.添加或删除 ...

最新文章

  1. 再谈移动端Web屏幕适配
  2. c语言3种链接属性: 外部(external), 内部(internal),无设置(none)
  3. 开发经常犯的错误之→【join表连接关联查询 】
  4. [暴力]JZOJ 5842 a
  5. 苹果蓝牙协议的源代码质量都这么差了吗?!研究员找到10个 0day
  6. android jni java call c字符串乱码,JNI系列入门之C语言中文字符串乱码问题
  7. tensorflow2.0 图像处理项目_UCOSIII移植——STM32F769I 图像处理能力评测之五
  8. mysql的模拟数据,员工的模拟数据,sql语句的应用,粘贴即用
  9. Simulink开环控制都不稳----记录一次还没有解决的问题
  10. Mybatis : DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
  11. 中文语音数据 - THCHS-30 : A Free Chinese Speech Corpus 【❤️下载介绍❤️】
  12. 计算机文化基础概括内容简介,计算机文化基础
  13. 通往WinDbg的捷径(一
  14. 计算机组成原理74hc273,计算机组成原理——运算器实验.doc
  15. 如何快速实现根因分析/业务大盘
  16. JavaScript 实现汉字转拼音 方案一
  17. 小程序生成分享海报php配置,小程序生成海报保存分享图片完全指南(包括:头像,文字)...
  18. 手机新浪网大变脸门户迎来双App时代
  19. 南航计算机考研招生简章,2020南京航空航天大学计算机考研初试科目、参考书目、招生人数汇总...
  20. 自动化测试 | 解决方案聚焦:如何进行5G/毫米波产品性能测试

热门文章

  1. 短信计费(信息学奥赛一本通-T1398)
  2. 判断能否被3,5,7整除(信息学奥赛一本通-T1047)
  3. 27 SD配置-主数据-信用管理-定义风险类别
  4. 17 PP配置-生产计划-总体维护工厂参数
  5. 图像条纹检测 python_机器视觉系统应用之—玻璃表面缺陷检测
  6. vue 前端显示图片加token_前端甩锅神器:vue中的mock使用
  7. 软件驱动安装在docker_低成本的无线打印:群晖上通过Docker容器实现Airprint
  8. OpenCV辅助对象(help objects)(5)_DataType
  9. elementUI日期选择器:仅设置可选择时间区间
  10. win10快速运行vue项目跑起来 - 方法篇