<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          淺析HTTP請求中的referrer和Referrer-Policy

          共 2055字,需瀏覽 5分鐘

           ·

          2021-12-29 01:21

          本文將介紹一個涉及安全和隱私的http請求頭中的字段—referrer,以及如何通過Referrer Policy去修改referrer的值或者是顯示與否。


          什么是referrer


          當(dāng)一個用戶點擊當(dāng)前頁面中的一個鏈接,然后跳轉(zhuǎn)到目標(biāo)頁面時,目標(biāo)頁面會收到一個信息,即用戶是從哪個源鏈接跳轉(zhuǎn)過來的。如下圖所示:


          也就是說,當(dāng)你發(fā)起一個http請求,請求頭中的referrer字段就說明了你是從哪個頁面發(fā)起該請求的。


          使用場景

          有時候我們需要控制這個referrer字段的值,即是否讓其顯示在請求頭中,或者是否顯示完整路徑等。尤其是在以下兩個使用場景:


          隱私

          在社交網(wǎng)站的個人中心頁面,也許會存在一些外鏈,這時候社交網(wǎng)站肯定不希望用戶在點擊這些鏈接跳轉(zhuǎn)到其他第三方網(wǎng)站時會將自己個人中心的URL信息顯示在referrer字段中傳過去,尤其是個人中心頁面的URL往往會帶著用戶數(shù)據(jù)和一些敏感信息。這時候可以選擇不顯示來源頁面URL信息或者只顯示一個網(wǎng)站根地址hostname。


          安全

          有些使用了https的網(wǎng)站,可能在URL中使用一個參數(shù)(sid)來作為用戶身份憑證,而又需要引入其他https網(wǎng)站的資源,這種情況,網(wǎng)站肯定不希望泄露用戶的身份憑證信息。當(dāng)https網(wǎng)站需要引入不安全的http網(wǎng)站的資源或者有鏈接要跳轉(zhuǎn)到http網(wǎng)站時,這時候?qū)ttps源網(wǎng)站的URL信息傳過去也是不太安全的。


          當(dāng)然還有其他情況下需要referrer的值,比如最近公司所做的項目中,有一個請求由于請求頭過大導(dǎo)致響應(yīng)是400,我們的Referrer Policy是默認(rèn)的情況,顯示的referrer是完整的URL信息,該URL帶了很多敏感數(shù)據(jù)比如加密后的token,sessionID等,長度特別長,請求頭中的cookie和請求的URL也帶著很大塊的信息,最終我們決定讓referrer只攜帶網(wǎng)站根地址的信息而不是其完整路徑,由此減小了header的大小。


          Referrer-Policy

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

          目前Referrer-Policy只包含以下幾種值:


          enum?ReferrerPolicy {
          "",
          "no-referrer",
          "no-referrer-when-downgrade",
          "same-origin",
          "origin",
          "strict-origin",
          "origin-when-cross-origin",
          "strict-origin-when-cross-origin",
          "unsafe-url"
          };

          空字符串

          若設(shè)為空串則默認(rèn)按照瀏覽器的機(jī)制設(shè)置referrer的內(nèi)容,默認(rèn)情況下是和no-referrer-when-downgrade設(shè)置得一樣。


          no-referrer

          不顯示referrer的任何信息在請求頭中。


          no-referrer-when-downgrade

          這是默認(rèn)值。當(dāng)從https網(wǎng)站跳轉(zhuǎn)到http網(wǎng)站或者請求其資源時(安全降級HTTPS→HTTP),不顯示referrer的信息,其他情況(安全同級HTTPS→HTTPS,或者HTTP→HTTP)則在referrer中顯示完整的源網(wǎng)站的URL信息。


          same-origin

          表示瀏覽器只會顯示referrer信息給同源網(wǎng)站,并且是完整的URL信息。所謂同源網(wǎng)站,是協(xié)議、域名、端口都相同的網(wǎng)站。


          origin

          表示瀏覽器在referrer字段中只顯示源網(wǎng)站的源地址(即協(xié)議、域名、端口),而不包括完整的路徑。


          strict-origin

          該策略更為安全些,和origin策略相似,只是不允許referrer信息顯示在從https網(wǎng)站到http網(wǎng)站的請求中(安全降級)。


          origin-when-cross-origin

          當(dāng)發(fā)請求給同源網(wǎng)站時,瀏覽器會在referrer中顯示完整的URL信息,發(fā)個非同源網(wǎng)站時,則只顯示源地址(協(xié)議、域名、端口)


          strict-origin-when-cross-origin

          origin-when-cross-origin相似,只是不允許referrer信息顯示在從https網(wǎng)站到http網(wǎng)站的請求中(安全降級)。


          unsaft-url

          瀏覽器總是會將完整的URL信息顯示在referrer字段中,無論請求發(fā)給任何網(wǎng)站。


          Referrer-Policy更改方法

          可以有以下5種方法:

          1. 通過Referrer-Policy HTTP header設(shè)置:

          Referrer-Policy: origin

          2. 通過元素改變Referrer Policy,直接修改名為referrer的內(nèi)容

          <meta?name="referrer"?content="origin">

          3., ,

          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91性爱视频 | 一本大道HEYZO乱码专区 一本大道东京热无码中文字幕 | www.男人天堂网 | 人人操天天操 | 操女综合网|