2

我们在从一个网站点击链接进入另一个页面时,浏览器会在header里加上Referer值,来标识这次访问的来源页面。但是这种标识有可能会泄漏用户的隐私,有时候我不想让其他人知道我是从哪里点击进来的,能否有手段可以让浏览器不要发送Referer呢?

我试过用window.location.href='...'来跳转,也还是有Referer。大家有什么好办法吗?

查看全部 7 个回答

1

有个折中的办法

// 例子, 比如index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>转向例子</title>
    <style type="text/css">
    #example, iframe.hidden {
        display:none;
    }
    </style>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript">
    $().ready(function(){
        $("#example").show();
        $(document.body).on('click', 'a[rel~="hide_ref"]',function(){
            var url = '/redirect.html#!'+ encodeURI(this.href);
            $('<iframe class="hidden" src="'+url+'"></iframe>').appendTo($(document.body));
            return false;
        });
    });
    </script>
</head>
<body>
    <div id="example">
    <h1>正常链接</h1>
    <a href="http://www4.ncsu.edu/~awwatkin/SHTML/dump.shtml">http://www4.ncsu.edu/~awwatkin/SHTML/dump.shtml</a>
    
    <h1>隐藏referer</h1>
    <a href="http://www4.ncsu.edu/~awwatkin/SHTML/dump.shtml" rel="hide_ref">http://www4.ncsu.edu/~awwatkin/SHTML/dump.shtml</a>
    
    </div>
</body>
</html>

// 这个是中间文件, redirect.html

<script type="text/javascript">
var hash = location.hash;
location.hash = '';
if(hash.substring(0,2)==='#!') {
    var url = decodeURI(hash.substring(2));
    top.location.href = url;    
}

</script>

这样只要点击rel里带hide_ref里链接, 都会生成一个iframe, iframe里读取location.hash(再重置), 然后top.location.href做转向, 无论从哪个地址点过去, 都是那个iframe的url

推荐答案

6

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

如果如果是新窗口打开,可以使用如下代码:

function open_new_window(full_link){ 
    window.open('javascript:window.name;', '<script>location.replace("'+full_link+'")<\/script>');
 }
2

如果如果是新窗口打开,可以使用如下代码: {{{ function open_new_window(full_link){ window.open('javascript:window.name;', '<script>location.replace("'+full_link+'")<\/script>'); } }}}

cute · 2012年09月30日

展开评论