UDN-企业互联网技术人气社区

板块导航

浏览  : 1041
回复  : 11

[原生js] document.referrer之隐藏来源

[复制链接]
genie1003的头像 楼主
发表于 2017-2-9 10:47:36 | 显示全部楼层 |阅读模式
  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
  1. 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。
  1. document.referrer
  2. "https://www.baidu.com/link?url=zLE2dhkSRJRlNuL1zLsfITcCHKA3FsrHk5uED2tu0xy1…dNBzUaqr3MjKzyz-xPewdyNCPKmMvQrq&wd=&eqid=a28369d50001b64700000005586b49c2"
复制代码

  清除来源

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

  下面来看一个例子:
  1. <!DOCTYPE html>

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

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

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

  20.     </script>
  21. </body>
复制代码

  效果如图:
3.png

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

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

相关帖子

发表于 2017-2-9 10:48:11 | 显示全部楼层
我完全是被标题<<document.referrer之隐藏来源>>吸引过来的
使用道具 举报

回复

发表于 2017-2-19 13:15:16 | 显示全部楼层
总觉得哪里有点问题啊
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部