js中可以用document.referrer获取到前页面来路url,在C#中可以通过Request.Referrer获取,但是有时候我们想隐藏来路 Referrer。

先看如何获取这个来路:

js: document.referrer

php: echo $_SERVER['HTTP_REFERER'];

C#:Response.Write(Request.Referrer)

最开始,大家使用的技术一般是 DMR (Double Meta Refresh) ,即两次meta refresh 刷新,这种技术对于ie浏览器, 目前为止还有有效果。但是对于chrome、Safari、firefox浏览器就不一定可行,存在泄漏的风险。

目前为了保险起见,蓝狐觉得的还有以下几个方式,可以同时采用:

1、Meta Refresh

这个就不说了,很简单,页面2次跳转刷新。

2、Javascript Location Replace

replace 方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。

语法: location.replace(URL)

如果有这种应用: 需要重新加载该页面,也就是说期望页面能够在服务端重新被创建,期望是 Not IsPostback 的,这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。

代码:

location.replace(location.href);

3、iFrame Parent Post

使用示例一:

function load(){

var postdata = '

"_top">' +

'' +

'' +

'

';

top.frames[0].document.body.innerHTML=postdata;

top.frames[0].document.getElementById('dynForm').submit();

}

使用示例二:

function open_without_referrer(link){

document.body.appendChild(document.createElement('iframe')).src='javascript:"

}

4、Flash getURL Function

这点是利用Flash里面的 getURL 函数打开新页面。比如 getURL(open_url,'_blank'); 就可以在新窗口中打开指定url。

但 是经过飘易的测试,flash跳转也不靠谱了。在chrome、firefox下都泄漏了来路referer信息。只有在ie下 才没有了JS的来路,但 是php的来路 $_SERVER['HTTP_REFERER']  还是有值,指向具体的 swf 文件。

flash跳转示例:

网页代码:

function get_url(){

return 'http://www.piaoyi.org/';

}

新建个flash,添加个button, 在动作中粘贴如下代码:

on (release) {

import flash.external.ExternalInterface;

loadVariablesNum('','callback');//获取js回调函数名称,存放在callback变量中

if(callback!=''){

open_url=ExternalInterface.call(callback);//调用js程序,获取url

if(open_url!=undefined){

getURL(open_url,'_blank');//在新窗口打开链接

}

}

}

5、HTTPS跳到HTTP

由于HTTPS是加密传输,出于安全需要,避免泄露用户的隐私(如银行支付系统的账户私人敏感信息来源) ,几乎所有主流浏览器都遵守了 RFC-2616规范,在 https 页面 来到 http 页面时,不会发送 referer 信息。 要做到这点,就需要自行架设https环境,需要考验技术了。

注 意,我说的是几乎所有主流浏览器,但是就有个别浏览器为了自身的利益,不遵守规范。比如手机端的安卓/苹果 UC浏览器,即使是由HTTPS 来 到 HTTP页面时,如果用户是从 UC自己的神马搜索点击搜索结果后来到HTTP页面时,然后跳转到 https 再跳到 http 时,神马搜索的来 路referrer依然被 uc浏览器发送过来了。

UC浏览器耍流氓啊。与此类似的还有 小米miui系统里自带的小米浏览器,有的时候也会偷偷发送这个referer。

15.1.3 Encoding Sensitive Information in URI's   Because the source of a link might be private information or might

reveal an otherwise private information source, it is strongly

recommended that the user be able to select whether or not the

Referer field is sent. For example, a browser client could have a

toggle switch for browsing openly/anonymously, which would

respectively enable/disable the sending of Referer and From

information.   Clients SHOULD NOT include a Referer header field in a (non-secure)

HTTP request if the referring page was transferred with a secure

protocol.

6、使用标签:rel="noreferrer"

目前基于webkit内核的比如chrome、Safari浏览器均支持该标签。

7、html data URI scheme

使用内嵌的方式,不会发起二次请求。

php location document.referrer,关于隐藏来路 Referrer的方法探讨相关推荐

  1. html中js隐藏div的高度,jQuery实现获取隐藏div高度的方法示例

    jQuery实现获取隐藏div高度的方法示例 发布时间:2020-09-22 19:27:55 来源:脚本之家 阅读:95 作者:zhuyangxing 本文实例讲述了jQuery实现获取隐藏div高 ...

  2. 网站设置隐藏友情链接的方法!

    相信很多站长,有出售外链的情况,那么有些链接不想让同行或用户看到,但又要出售给别人挂上友情链接利于SEO工作.那么下面就是设置隐藏友情链接的方法,网站不显示,但能传递权重. 代码如下: <scr ...

  3. html元素隐藏js 控制,JS控制HTML元素的显示和隐藏的两种方法

    JS控制HTML元素的显示和隐藏的两种方法 利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一 ...

  4. 【JQuery】jQuery(document).ready(function($) { });的几种表示方法及load和ready的区别

    jQuery中处理加载时机的几种方式 第一种: jQuery(document).ready(function() {alert("你好"); }); //或 $(document ...

  5. 在Apache上隐藏服务器签名的方法

    这篇文章主要介绍了在Apache上隐藏服务器签名的方法,示例基于Debian系的Linux,需要的朋友可以参考下 透露网站服务器带有服务器/PHP版本信息的签名会带来安全隐患,因为你基本上将你系统上的 ...

  6. [数据加密]GIS空间数据水印信息隐藏与加密技术方法[转]

    到目前为止,国内外数字水印技术的研究主要集中在图像.视频和声音等多媒体信息的版权保护上,在GIS空间数据中,通过隐藏水印信息并对其加密.压缩以实现其安全保护的研究还很少,这是数字水印技术应用的一个新领 ...

  7. apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...

    今天小编跟大家讲解下有关科技常识:nginx/apache/php隐藏http头部版本信息的实现方法,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:nginx/apache/php ...

  8. android上滑隐藏动画,ListView上滑和下滑,显示和隐藏Toolbar的实现方法

    1.准备Toolbar 先隐藏系统自带的actionbar,在AndroidManifest.xml文件标签中: android:theme="@style/Theme.AppCompat. ...

  9. Android PopupWindow 隐藏软键盘的方法

    今天,简单讲讲android里  PopupWindow 弹出在底部,被软键盘遮挡的问题. 之前,自己写一个PopupWindow 弹出在底部,可是如果软键盘显示时弹出,软键盘会遮挡PopupWi ...

最新文章

  1. java程序设计案例教程 钱银中_《Java程序设计案例教程》【价格 目录 书评 正版】_中国图书网...
  2. 深入理解乐观锁与悲观锁
  3. 使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网
  4. 360极速浏览器无法正确getHours
  5. redis(9)--数据库
  6. SAP Hybris Commerce Cloud Accelerator Storefront 在 Eclipse 中的调试
  7. lua math.random()
  8. Visual Studio 2010 调试 C 语言程序
  9. 十大应用在数学的计算机语言
  10. (王道408考研数据结构)第五章树-第四节3:哈夫曼树基本概念、构造和哈夫曼编码
  11. 【Clickhouse】Clickhouse 外部存储引擎之 File
  12. Ubuntu安装OpenTSDB
  13. 比较好的自学IT的网站
  14. 信息学竞赛与 计算机科学,在信息学奥林匹克竞赛中我与学生共成长
  15. leetcode4568
  16. PaddleOCR+OpenCV实现中英文识别
  17. 学生也可以搭建自己的网站详细讲解
  18. 五脏积毒的表现 脸上长痘位置看你健康情况
  19. v u e + ts excel表的导入解析转换 加下载excel表格式(个人笔记)
  20. vue 导出word带图片

热门文章

  1. Vue使用antV G2简单实例
  2. App常用的专项测试概述
  3. Nicholas C. Zakas:我热爱互联网技术的种种异端
  4. CentOS 7系统安装配置图解教程
  5. Centos 7安装搜狗输入法
  6. java计算机毕业设计ssm+vue基本微信小程序的校园二手闲置商品交易平台
  7. ssh远程登录和防火墙
  8. StringUtils.isEmpty()和isBlank,isNoneBlank,isNotBlank的区别
  9. 宠物合成网站源码_区块养猪大亨宠物合成原生开发源码搭建
  10. 献给半夜加班到深夜的女程序员