Vue項目中的Referrer Policy相關(guān)問題

如果大家在開發(fā)Vue項目時遇到了有關(guān)Referrer Policy的問題缭贡,類似下面的情況:


錯誤圖片

那么這種問題就是Referrer Policy問題。首先我們先了解一下什么是Referrer Policy

Referrer簡介

簡單來說辉懒,Referrer 是HTTP協(xié)議中的一個請求報頭阳惹,用于告知服務(wù)器用戶的來源頁面。比如說你從Google搜索結(jié)果中點(diǎn)擊進(jìn)入了某個頁面眶俩,那么此次HTTP請求中的Referrer 就是Google搜索結(jié)果頁面的地址莹汤。如果你的某篇博客中引用了其他地方的一張圖片,那么對該圖片的HTTP請求中的Referrer 就是你那篇博客的地址颠印。
一般Referrer 主要用于統(tǒng)計纲岭,像CNZZ、百度統(tǒng)計等可以通過Referrer 統(tǒng)計訪問流量的來源和搜索的關(guān)鍵詞(包含在URL中)等等线罕,方便站長們有針性對的進(jìn)行推廣和SEO什么的
當(dāng)然Referrer 另一個用處就是防盜鏈了荒勇,主要是圖片和網(wǎng)盤服務(wù)器使用的較多。盜鏈的危害不言而喻闻坚,侵犯了版權(quán)不說,增加了服務(wù)器的負(fù)荷兢孝,卻沒有給真正的服務(wù)提供者帶來實際利益(廣告點(diǎn)擊什么的)窿凤。
另外注意的是,Referrer是瀏覽器為我們自動加上的跨蟹。

Referrer Policy簡介

Referrer Policy的作用就是的作用就是為了控制請求頭中referrer的內(nèi)容雳殊,目前是一個候選標(biāo)準(zhǔn),不過已經(jīng)有部分瀏覽器支持該標(biāo)準(zhǔn)窗轩。
目前Referrer-Policy只包含以下幾種值:

  • no-referrer
    整個 Referrer 首部會被移除夯秃。訪問來源信息不隨著請求一起發(fā)送。也就是說當(dāng)你訪問A頁面時痢艺,點(diǎn)擊了A頁面上的某個超鏈接進(jìn)入了B頁面仓洼,那么對B頁面訪問的請求頭中不會包含Referrer字段。
  • no-referrer-when-downgrade
    在沒有指定任何策略的情況下用戶代理的默認(rèn)行為堤舒。在同等安全級別的情況下色建,引用頁面的地址會被發(fā)送(HTTPS->HTTPS),但是在降級的情況下不會被發(fā)送 (HTTPS->HTTP)舌缤。即當(dāng)訪問的協(xié)議都是https時箕戳,對新訪問的頁面的請求頭中會包含舊頁面的全部鏈接某残,但是當(dāng)舊頁面的協(xié)議時https,新頁面的協(xié)議是http時陵吸,對新頁面的訪問的請求頭Referrer字段不會包含任何值玻墅。
  • origin
    在任何情況下,僅發(fā)送鏈接的域名作為Referrer字段的值壮虫。例如 https://example.com/page.html 會將 https://example.com/ 作為Referrer的值澳厢。
  • origin-when-cross-origin
    對于相同域名的請求,會發(fā)送完整的URL作為Referrer的值旨指,但是對于非同源請求僅發(fā)送舊頁面的域名赏酥。
  • same-origin
    對于同源的請求會發(fā)送舊業(yè)面全部URL,但是對于非同源請求則不發(fā)送舊頁面的全URL息谆构。
  • strict-origin
    在同等安全級別的情況下滥搭,發(fā)送文件的域名作為引用地址(HTTPS->HTTPS)钾怔,但是在降級的情況下不會發(fā)送 (HTTPS->HTTP)。
  • strict-origin-when-cross-origin
    對于同源的請求,會發(fā)送完整的URL读宙;不同源的請求在同等安全級別的情況下,發(fā)送文件的域名作為引用地址(HTTPS->HTTPS)褂始;在降級的情況下不發(fā)送此首部 (HTTPS->HTTP)景埃。
  • unsafe-url
    無論是同源請求還是非同源請求,都發(fā)送完整的 URL(移除參數(shù)信息之后)作為引用地址粱哼。

示例

Policy Document Navigation to Referrer
no-referrer https://example.com/page.html any domain or path no referrer
no-referrer-when-downgrade https://example.com/page.html https://example.com/otherpage.html https://example.com/page.html
no-referrer-when-downgrade https://example.com/page.html https://mozilla.org https://example.com/page.html
no-referrer-when-downgrade https://example.com/page.html http://example.org no referrer
origin https://example.com/page.html any domain or path https://example.com/
origin-when-cross-origin https://example.com/page.html https://example.com/otherpage.html https://example.com/page.html
origin-when-cross-origin https://example.com/page.html https://mozilla.org https://example.com/
origin-when-cross-origin https://example.com/page.html http://example.com/page.html https://example.com/
same-origin https://example.com/page.html https://example.com/otherpage.html https://example.com/page.html
same-origin https://example.com/page.html https://mozilla.org no referrer
strict-origin https://example.com/page.html https://mozilla.org https://example.com/
strict-origin https://example.com/page.html http://example.org no referrer
strict-origin http://example.com/page.html any domain or path http://example.com/
strict-origin-when-cross-origin https://example.com/page.html https://example.com/otherpage.html https://example.com/page.html
strict-origin-when-cross-origin https://example.com/page.html https://mozilla.org https://example.com/
strict-origin-when-cross-origin https://example.com/page.html http://example.org no referrer
unsafe-url https://example.com/page.html any domain or path https://example.com/page.html

Vue中全局修改Referrer的方法

在項目的router.js文件中加入以下代碼:

let head = document.getElementsByTagName('head');
let meta = document.createElement('meta');
meta.name = 'referrer';
//根據(jù)實際情況修改referrer的值季二,可選值參考上文
meta.content = 'no-referrer';
head[0].appendChild(meta);

改變referrer的值重新運(yùn)行項目可以看到請求成功!


正確圖片
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揭措,一起剝皮案震驚了整個濱河市胯舷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绊含,老刑警劉巖桑嘶,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躬充,居然都是意外死亡逃顶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門充甚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來以政,“玉大人,你說我怎么就攤上這事伴找∶钫幔” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵疆瑰,是天一觀的道長眉反。 經(jīng)常有香客問我昙啄,道長,這世上最難降的妖魔是什么寸五? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任梳凛,我火速辦了婚禮,結(jié)果婚禮上梳杏,老公的妹妹穿的比我還像新娘韧拒。我一直安慰自己,他們只是感情好十性,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布叛溢。 她就那樣靜靜地躺著,像睡著了一般劲适。 火紅的嫁衣襯著肌膚如雪楷掉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天霞势,我揣著相機(jī)與錄音烹植,去河邊找鬼。 笑死愕贡,一個胖子當(dāng)著我的面吹牛草雕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播固以,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼墩虹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了憨琳?” 一聲冷哼從身側(cè)響起诫钓,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栽渴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稳懒,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闲擦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了场梆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墅冷。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖或油,靈堂內(nèi)的尸體忽然破棺而出寞忿,到底是詐尸還是另有隱情,我是刑警寧澤顶岸,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布腔彰,位于F島的核電站叫编,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏霹抛。R本人自食惡果不足惜搓逾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杯拐。 院中可真熱鬧霞篡,春花似錦、人聲如沸端逼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顶滩。三九已至余掖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诲祸,已是汗流浹背浊吏。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留救氯,地道東北人找田。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像着憨,于是被迫代替她去往敵國和親墩衙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容