天天看點

第三方圖檔資源403的問題

傳回403的原因

為什麼文章清單資料中的好多圖檔資源請求失敗傳回 403?

        這是因為我們項目的接口資料是後端通過爬蟲抓取的第三方平台内容,而第三方平台對圖檔資源做了防盜鍊保護處理。

第三方平台怎麼處理圖檔資源保護的?

        服務端一般使用 Referer 請求頭識别通路來源,然後處理資源通路。

第三方圖檔資源403的問題

Referer 是什麼東西?

        Referer 是 HTTP 請求頭的一部分,當浏覽器向 Web 伺服器發送請求的時候,一般會帶上 Referer,它包含了目前請求資源的來源頁面的位址。服務端一般使用 Referer 請求頭識别通路來源,可能會以此進行統計分析、日志記錄以及緩存優化等。

擴充參考:HTTP Referer 教程 - 阮一峰的網絡日志

需要注意的是 referer 實際上是 "referrer" 誤拼寫。參見 HTTP referer on Wikipedia (HTTP referer 在維基百科上的條目)來擷取更詳細的資訊。

解決方法

        不要發送 referrer ,對方服務端就不知道你從哪來的了,姑且認為是你是自己人吧。

如何設定不發送 referrer?

        用

<a>

<area>

<img>

<iframe>

<script>

或者

<link>

元素上的

referrerpolicy

屬性為其設定獨立的請求政策,例如:

<img src="http://……" referrerPolicy="no-referrer">
           

或者直接在 HTMl 頁面頭中通過 meta 屬性全局配置:

<meta name="referrer" content="no-referrer" />