什么是referer搓逾?
referrer是指返回跳轉或打開到當前頁面的那個頁面的URI剥哑,舉個例子掠拳,從 A網(wǎng)頁 -> B網(wǎng)頁,再B網(wǎng)頁里的referrer就是A網(wǎng)頁的URI筐赔。
referer有什么用铣猩?
Referer 請求頭讓服務器能夠拿到請求資源的來源,可以用于分析用戶的興趣愛好川陆、收集日志剂习、優(yōu)化緩存等等。同時也讓服務器能夠發(fā)現(xiàn)過時的和錯誤的鏈接并及時維護较沪。
referer有什么隱患鳞绕?
盡管如此,有時候尸曼,對于一個網(wǎng)站來說们何,由于涉及隱私和安全問題,防止 referrer 泄漏很重要
比如控轿,很多情況下我們的url會包含用戶的個人信息冤竹。因此拂封,有時候,我們需要移除頁面上的referer信息
移除頁面referer的方法
為一個單獨的鏈接移除 referrer
html5中有一個新屬性rel鹦蠕,設置rel=“ noreferrer”就可以去掉referrer值冒签,常常運用在<a>標簽上。
<a rel="noreferrer" />
為iframe移除referrer
嵌入一個iframe時用data加base64編碼的方式
// 處理iframe里的src
base64Iframe = 'data:text/html;base64,' + delRefer(url)
// 構建iframe钟病,去掉referrer
function delRefer (url) {
let s = `<body style="margin: 0"><iframe src="${url}" width="100%" height="100%" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-modals" frameborder="0"></iframe></body>`
return Base64.encode(s) // 通過base64編碼該標簽
},
為整個網(wǎng)頁的每個鏈接移除 referrer
這個時候可以設置meta標簽的name
屬性萧恕,在設置content
值
<meta name="referrer" content="never" >
設置了name=“referrer“
,根據(jù)content不同的值可以有不同的策略
image.png
其他情況
HTTPS協(xié)議到HTTP的協(xié)議肠阱,這時候Referer也是空的