首页 > 资讯列表 > 编程/数据库 >> PHP

关于隐藏来路 Referrer 的方法探讨

PHP 2014-11-28 16:49:38 转载来源: 网络整理/侵权必删

本文为大家讲解的是关于隐藏来路 Referrer 的方法探讨,感兴趣的同学参考下。 关于隐藏来路 Referrer 在某些情况下很有用,国外网赚界使用的非常广泛

本文为大家讲解的是关于隐藏来路 Referrer方法探讨,感兴趣的同学参考下。

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

先看如何获取这个来路:
js: document.referrer
php: echo $_SERVER['HTTP_REFERER']; 

最 开始,大家使用的技术一般是 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
    使用示例一:

<html>
<head>
<script>
function load(){
    var postdata = '<form id="dynForm" method="POST" action="http://www.piaoyi.org/" target=
"_top">' +
                   '<input type=hidden name="uname" value="piaoyi" />' +
                   '<input type=hidden name="pwd" value="123456" />' +
                   '</form>';
    top.frames[0].document.body.innerHTML=postdata;
    top.frames[0].document.getElementById('dynForm').submit();
}
</script>
</head>
<body onload="load()">
<iframe src="about:blank" id="noreferer"></iframe>
</body>
</html>


    使用示例二:

function open_without_referrer(link){
document.body.appendChild(document.createElement('iframe')).src='javascript:"<script>top.location.replace(''+link+'')</script>"';
}

    4、Flash getURL Function
    这点是利用Flash里面的 getURL 函数打开新页面。比如 getURL(open_url,'_blank'); 就可以在新窗口中打开指定url。
    但 是经过飘易的测试,flash跳转也不靠谱了。在chrome、firefox下都泄漏了来路referer信息。只有在ie下 才没有了JS的来路,但 是php的来路 $_SERVER['HTTP_REFERER']  还是有值,指向具体的 swf 文件。

flash跳转示例:
    网页代码:

<!--flash引用代码-->
<object id="open_url" width="25" height="20" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" >
    <param name="movie" value="piaoyi.org_open_url.swf?callback=get_url" />
    <param name="quality" value="high" />
    <param name="wmode" value="transparent" />
    <embed width="25" height="20"  src="piaoyi.org_open_url.swf?callback=get_url" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"/>
</object>
<script type="text/javascript">
    function get_url(){
        return 'http://www.piaoyi.org/';
    }</script>

    新建个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。

附注:RFC-2616规范第15.1.3条

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
    使用内嵌的方式,不会发起二次请求。


标签: 关于 隐藏 来路 Referrer 方法 探讨


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持