document.referrer之隱藏來源


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>

效果如圖:

當我們點擊有referrer的a標簽的時候,在百度頁面我們可以看到referrer。

當我們點擊ifame中嵌套的a標簽的時候,在百度頁面我們可以看到referrer為空字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM