1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          你了解Referer嗎

          來源:互聯網轉載 時間:2024-01-29 07:50:38

          導讀

          在進一步介紹referer之前,先提以下幾個問題,看你是否都能回答上來。帶著這幾個問題和疑問去讀這篇文章,更有針對性,相信你的收獲也會更大。

          問題匯總:

          1、什么是 referer? 有什么用?2、怎么設置 referer 白名單?3、有哪些方式可避開 referer 限制?4、如何自定義請求的 referer 值?

          1. 簡介

          常見的 http 請求中,header 部分往往都會帶有一個referer字段。如下:

          該字段記錄了請求來源。以上圖為例,請求為:

          https://pinpai.1688.com/rpc/imall/channel/recentenroll.json

          場景為 IMall 站點(https://imall.1688.com )展示的一個最新入駐信息:

          因為是從 IMall 站點頁面發出的 http 請求信息,所以referer的字段信息,就是該站點的 host:https://imall.1688.com。

          但也有一些 http 請求的referer字段為空,或者干脆不包含這個字段。如:a) 用戶直接在地址欄輸入 url 鏈接;b) 從瀏覽器的收藏夾中直接打開收藏鏈接;c) 后端代碼直接發起 http 請求,未配置 referer 信息;d) 用戶的瀏覽器設置中關閉了攜帶 referer 信息的功能等。

          正常情況下,當前頁面加載時發起請求,或用戶在頁面點擊鏈接發起請求,瀏覽器會自動在 http 請求 hearder 的referer字段中,添加當前頁面的域名(如上圖的場景)。

          但若直接在瀏覽器地址欄中輸入該請求 url,因沒有來源,也就不會存在referer字段。如:A 頁面中有一個B 頁面的跳轉鏈接(https://www.bpage.com),A 頁面的域名是www.apage.com,那么當用戶在A 頁面點擊了該跳轉鏈接時,跳轉鏈接的請求頭(request header)中,攜帶的referer信息就是www.apage.com。

          小插曲:

          英語好的小伙伴是不是發現了一個問題,referer的拼寫不對的吧?怎么少了個"r",正確的拼寫應該是referrer。其實,在制定標準時,提交給官方的字段名就是少了個"r"字母的referer,神奇的是,所有的人都“默契地”忽略了該單詞的拼寫錯誤,因此referer也就成了官方標準,錯了就錯了吧,反正也不影響使用。所以屏幕前的小伙伴往后在使用該字段時,一定要注意拼寫,是 referer,不是 referrer。

          2. referer 字段的作用

          http 請求頭 header 中設置了referer字段,自然有此它的作用。常用的作用有兩個,一是統計訪問來源,二是設置防盜鏈。

          2.1 統計來源(PV、UV)

          舉個栗子。

          在 IMall 站點(imall.1688.com)頁面中嵌入了品牌站的鏈接(https://pinpai.1688.com),那么對于品牌站的服務器而言,就可以根據referer字段來統計所有訪問來源中,從 IMall 站點過來的訪問量有多少。

          2.2 防盜鏈

          首先看下,什么是盜鏈。

          2.2.1 盜鏈

          百度百科對"盜鏈"詞條的解釋:

          服務提供商自己不提供服務的內容,通過技術手段繞過其它有利益的最終用戶界面(如廣告),直接在自己的網站上向最終用戶提供其它服務提供商的服務內容,騙取最終用戶的瀏覽和點擊率。受益者不提供資源或提供很少的資源,而真正的服務提供商卻得不到任何的收益。

          上面這段話比較繞,說的比較官方,可簡單理解為:某些 http 請求并不是在任何場景下都可以訪問。

          我們做個簡單的比喻哈。像淘寶上店家售賣的商品圖、專業圖片網站上的圖片,這些都是賣家或者網站的寶貴資源,不能輕易被其他網站利用和展示。比如淘寶商家費了好大勁拍了個好看的模特試穿圖,攝影師苦等了個把月才拍到的大漠落日景象,直接被一個第三方網站在他們自己的網站上放了鏈接展示,這還不得讓拍照片的人氣的吐血啊。。。

          再說了,淘寶平臺也不允許這么干,直接把他們的命根子——流量給分攤過去了,淘寶平臺是不會允許這種事情發生的。

          我們看個示例:

          上圖是淘寶的一個商品頁面,左側紅框中的是商品圖片對應的 http 請求:

          https://img.alicdn.com/tfscom/i3/TB1GypLh1sAV1JjSZFsYXGdZXXa_M2.SS2_460x460xz.jpg

          referer的值是在*.taobao.com這個二級域名下:

          https://market.m.taobao.com/app/tb-source-app/aiguangjiepc/item/index.html?spm=a21bo.2017.2001.7.5af911d9dPHIsp&itemId=200406358577

          那么,如果將 http 請求放在百度首頁中訪問,會怎樣呢?請看下圖:

          在控制臺輸入如下語句

          location.

          按下回車后,訪問被禁止,這就是淘寶平臺設置的防盜鏈功能。

          2.2.2 如何防止盜鏈?

          上面我們看到了盜鏈的危害,怎么避免盜鏈呢?答案就是referer字段。當然了,通過referer字段來防止盜鏈只是其中一種方式,像配置nginx也可以達到防盜鏈的目的,但本文主要探討referer字段的相關知識點,因此就只說明如何通過referer字段的設置來達到防盜鏈的目的,其他途徑大家可自行搜索,不在本文的討論范圍內~

          比如,后臺服務器的一個 http 接口,希望其訪問來源只能是淘寶站點(https://www.taobao.com )及其二級、三級等子站點,其他來源的 http 請求我們拒絕處理。那么就可以通過設置 http 請求 header 的referer字段來達到這個目的。

          通常,會有個白名單列表來圈定期望來源。比如,在服務器的后臺應用(springboot 框架)中,就可以通過配置的方式,限定哪些接口是允許哪些來源的請求訪問:

          # referspring.security.filters.referer-validation.enabled = true## Spring Security HTTP 安全域名列表,可選值,多值通過","分割,通過""作為換行連接符號spring.security.http.safe.domains = *.taobao.com

          3. referer 設置

          一般來說,頁面發起的 http 請求,referer字段的配置,通過前端代碼是無法干預的,是由瀏覽器自主設置添加的,當然了,如果不想攜帶referer字段,可在瀏覽器的設置中關掉即可。

          3.1 請求發送方配置

          2.2 節中的防盜鏈功能,也不能全指望referer字段,對于referer字段,也是可以偽造的。如下:

          HttpURLConnection conn;conn.setrequestproperty("refer", "http://imall.1688.com");

          因此,既然能偽造,也就不能完全信任referer字段。

          3.2 服務器端 refer 校驗

          • 第一種:設置白名單
          Set<String> refererSet = new HashSet<>(Arrays.asList("*.1688.com", "*.alibaba-inc.com"));String referer = request.getHeader("REFERER");for (String str : refererSet) {    if (Pattern.matches(str, referer)) {        // ...    }}
          • 第二種:配置文件
          # referspring.security.filters.referer-validation.enabled = true## Spring Security HTTP 安全域名列表,可選值,多值通過","分割,通過""作為換行連接符號spring.security.http.safe.domains = *.taobao.com

          4. mock referer 字段

          對于限定了 referer 范圍的請求,在 mock 請求的時候,必須帶上特定的 referer,那么,如何操作呢?有以下幾種方式。

          4.1 postman

          postman 是一個 chrome 插件,可 mock 多種類型請求,常用的就是 post 和 get。對于限定請求來源的請求,可在 header 中設置 referer 字段。

          若添加 referer 時,出現如下提示:

          說明設置的 referer 字段未生效,需安裝 postman interceptor 插件(詳情)。同時設置 interceptor 為 true,如下:

          4.2 Refer Control

          這是一款插件,用于配置特定請求的 referer 字段。配置方式如下:

          使用起來也較簡單,每個輸入的網址右側有幾個按鈕:

          • to: 表示要訪問這個網址
          • from: 表示請求是從這個網址鏈接過去
          • 3rd:
          • RegEx: 以正則方式約束
          • Normal: 默認方式
          • Custom: 自定義 referer
          • Block: 需阻斷的 referer

          4.3 Intellij Idea 自帶功能

          如下圖:

          這種方式比較簡單。

          4.4 利用 referer 設置的默認方式

          舉個栗子就明白了。對于請求:

          https://pinpai.1688.com/rpc/imall/channel/recentenroll.json

          其要求必須有 header 中的 referer 字段,并且正則匹配如下:

          *.1688.com, *.alibaba-inc.com

          那么就可以在 1688 網站的任何一個網頁,以 imall.1688.com 為例,將任何一個可點擊控件的鏈接值設為該請求。操作如下圖:

          修改后,點擊"首頁"就可請求到結果。因為瀏覽器會默認將當前頁面的域名(imall.1688.com)設為 referer 值。

          Reference

          1. postman 的 interceptor 安裝: https://www.cnblogs.com/restful/p/6164526.html
          標簽:referer-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          移動Sim大卡換小卡?機主本人攜帶身份證,到任意一家移動營業廳,說可以辦理換卡業務。營業廳會根據您的需求更換大小合適的手機卡。以前手機卡是大卡,后來換成了minisim卡,就是老人機用的那種。隨著技術要求和變化,現在是micro sim卡,大部分手機都可以插。我的卡是外地的,可以去當地移動營業廳換小卡或者剪卡嗎?你可以 不要換一張小卡片。如果你的卡是大卡,你只能去手機店換,讓它給你剪成小卡。想換小...

          rice中c發音相同的單詞?英語單詞rice中的c發音為/s/,所以發音相同的單詞是face。米,就是大米的意思。我想要一碗米飯。我想要一碗米飯。臉就是臉的意思,比如那個小男孩是圓臉。這個小男孩有一張圓臉。還有一個和他發音一樣的詞,mouse,就是老鼠的意思。cold和rice中的c發音一樣嗎?英語單詞cold和rice中輔音字母c的發音完全不同。輔音字母c有兩種發音。1.當c在I,e,Y之前時,...

          世界十大危險機場排名世界十大機場最難降落?世界最復雜機場?1、盧卡拉機場盧卡拉機場位于尼泊爾東部的盧卡拉鎮,喜馬拉雅山腹地,被稱為世界屋脊上的跑道。機場跑道很短,只有460米,坡度很大,達到了18.5學位。機場只有06號跑道可以降落,跑道的盡頭是懸崖。如果一次近進失敗,就沒有復飛的可能。此外,由于機場位于高山腹地,氣象條件復雜,亂流眾多,無可爭議地位居世界十大危險機場之首。2、特崗汀機場特崗汀機場...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>