1. 程式人生 > 程式設計 >JavaScript 防盜鏈的原理以及破解方法

JavaScript 防盜鏈的原理以及破解方法

HTTP Referer是header的一部分, 當瀏覽器向web伺服器傳送請求的時候,一般會帶上Referer,告訴伺服器我是從哪個頁面連結過來的,伺服器藉此可以獲得一些資訊用於處理。通過該頭域的值,我們可以檢測到訪問目標資源的源地址

背景

前段日子 在自學做專案的時候發現 明明在專案中引用了線上存在的圖片 但是在自己的專案中卻怎麼也顯示出來

查閱資料後發現是這些第三方網站設定了防盜鏈

破解防盜鏈

先說說防盜鏈的原理,http 協議中,如果從一個網頁跳到另一個網頁,http 頭欄位裡面會帶個 Referer。

這裡的Referer是由於歷史原因導致了拼寫錯誤 後來也就一直沿用。

圖片伺服器通過檢測 Referer 是否來自規定域名,來進行防盜鏈。

如果盜用網站是 https 的 protocol,而圖片連結是 http 的話,

則從 https 向 http 發起的請求會因為安全性的規定,而不帶 referer,從而實現防盜鏈的繞過。

官方輸出圖片的時候,判斷了來源(Referer),就是從哪個網站訪問這個圖片,

如果是你的網站去載入這個圖片,那麼Referer就是:你的網站地址;

你網站地址,肯定沒在官方的白名單內,所以就看不到圖片了。

因此,若不傳送Referer,也就是沒有來源。那麼官方那邊,就認為是從瀏覽器直接訪問的,所以就能載入正常的圖片了。

<meta name="referrer" content="never">

比如在掘金上 檢視我的一篇文章中一張圖片的Request Headers 就可以看到Referer

JavaScript 防盜鏈的原理以及破解方法

以上就是JavaScript 防盜鏈的原理以及破解方法的詳細內容,更多關於JavaScript 防盜鏈的資料請關注我們其它相關文章!