Javascript中document.referrer隐藏来源的方法


Posted in Javascript onJanuary 16, 2017

前言

本文为大家讲解的是关于Javascript中document.referrer隐藏来源的方法探讨,感兴趣的同学参考下。

关于隐藏来路 Referrer 在某些情况下很有用,国外网赚界使用的非常广泛。比如流量提供方由于不想让联盟知道自己的流量来源,就需要隐藏自己来源网站的 referer。

document.referrer

document.referrer是用来获取跳转链接的来源,正规的解释是:referrer 属性可返回载入当前文档的文档的 URL。

实际中使用在广告相关业务中较多,包括推广等。

举个例子:

比如我们从百度中跳转到w3c,那我们从w3c中可以获取到referrer,这个referrer就是

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=document.referrer&oq=%E6%B8%85%E9%99%A4referrer&rsv_pq=bfd3dd180001b68f&rsv_t=876eCMwvcF%2Flc4tY42Va03DF7M83coNzQeRp4L2xYhUVk840K1J53CNfslM&rqlang=cn&rsv_enter=1&inputT=10344&rsv_sug3=111&rsv_sug1=109&rsv_sug7=000&rsv_n=2&bs=%E6%B8%85%E9%99%A4referrer

从http请求头部我们也可以找到这个referrer

Referer:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=document.referrer&rsv_pq=ad59c4820001a9ba&rsv_t=d9cb%2Bi5AE7Ns3JHq3qbNca2i5LbazZfjc364gvq%2BclD%2Bs%2Fi44XuGYnb3giY&rqlang=cn&rsv_enter=1&rsv_sug3=12&rsv_sug1=11&rsv_sug7=100&sug=document.referrer&rsv_n=1

同样我们在w3c页面中控制台中也获取到这个referrer。

document.referrer
https://www.baidu.com/link?url=zLE2dhkSRJRlNuL1zLsfITcCHKA3FsrHk5uED2tu0xy1…dNBzUaqr3MjKzyz-xPewdyNCPKmMvQrq&wd=&eqid=a28369d50001b64700000005586b49c2

清除来源

最常用的还是使用iframe来隐藏referrer。

下面来看一个例子:

<!DOCTYPE html>

<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <title>document.referrer</title>
</head>

<body>
 <h1>隐藏referrer</h1> 跳转至百度(有referrer):
 <a target="_blank" href="https://www.baidu.com/">test</a>
 
 <script type="text/javascript">

 var iframe = document.createElement('iframe'),
 html = '<!doctype html><head><meta charset="utf-8"></head><body>跳转至百度(无referrer):<a target="_blank" href="https://www.baidu.com/">referrer test</a></body>',
 src = 'javascript:document.write(window.frameElement.getAttribute(\'data-src\'))';
 iframe.setAttribute('data-src', html);
 iframe.setAttribute('src', src);
 iframe.width = '500';
 iframe.height = '300';
 document.body.appendChild(iframe);

 </script>
</body>

效果如图:

Javascript中document.referrer隐藏来源的方法 

当我们点击有referrer的a标签的时候,在百度页面我们可以看到referrer。

Javascript中document.referrer隐藏来源的方法

当我们点击ifame中嵌套的a标签的时候,在百度页面我们可以看到referrer为空字符串。

Javascript中document.referrer隐藏来源的方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
小试JQuery的AutoComplete插件
May 04 Javascript
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
js实现拖拽 闭包函数详细介绍
Nov 25 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
Sep 05 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
layui实现三级导航菜单
Jul 26 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
详解vue父子组件状态同步的最佳方式
Sep 10 Javascript
基于jQuery实现的打字机效果
Jan 16 #Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 #Javascript
JavaScript严格模式详解
Jan 16 #Javascript
关于iframe跨域POST提交的方法示例
Jan 15 #Javascript
JavaScript中利用for循环遍历数组
Jan 15 #Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 #Javascript
JavaScript调试的多个必备小Tips
Jan 15 #Javascript
You might like
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PDO实现学生管理系统
2020/03/21 PHP
ie focus bug 解决方法
2009/09/03 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
全面了解js中的script标签
2016/07/04 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
jQuery中map函数的两种方式
2017/04/07 jQuery
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
python创建文件时去掉非法字符的方法
2018/10/31 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
什么是数组名
2012/05/10 面试题
什么是设计模式
2012/06/17 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
护理毕业生自荐信范文
2013/12/22 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
法人委托书范本格式
2014/09/15 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
在Python中如何使用yield
2021/06/07 Python