新浪微博圖牀失效403的解決辦法總結

近日,新浪圖牀開啓了防盜鏈,不少依託於新浪圖牀的網站圖片都無法訪問了,看到了網上很多的方法,結合小東自身經驗,總結一下新浪圖牀 403(失效)的解決辦法。

新浪圖牀是一個非常好的圖牀,雖然新浪到處被噴,但是在圖片外鏈上一直沒采取防盜鏈措施,近日纔開啓了防盜鏈措施。衆所周知,圖片的加載是需要流量的,但如果服務器的帶寬不夠大,那麼網站的加載速度明顯降低,用戶的體驗就不好,所以不少的小網站站長,會將圖片以外鏈的方式存到新浪圖牀中。

新浪圖牀開啓防盜鏈

0x01 什麼是防盜鏈

新浪的防盜鏈是Referer 防盜鏈,這種類型的防盜鏈方式,非常常見也很簡單

RefererHTTP協議裏有特殊的用途,當瀏覽器向服務器發送請求時,一般會帶上Referer頭,告知服務器該請求是從哪個頁面鏈接過來的。Referer經常被用於頁面訪問統計、圖片防盜鏈等。

當一個HTTP請求發送到CDN服務器後,CDN服務器檢查客戶URL中所攜帶的Referer字段的信息,禁止或者允許符合特定規則(支持正則匹配)

常見CDN服務就會提供此類型的防盜鏈功能,典型特徵是:不能通過其他網站訪問,但是直接訪問圖片資源的URL是可以下載、查看。


0x02 解決辦法

因爲很多站長目前的圖片都存在新浪的服務器中,結合Referer防盜鏈的特徵,小東蒐集總結有如下的解決辦法。

2.1 META標籤

在網站的<head>標籤內添加一行聲明referrer的規則

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

這樣就可以繼續使用新浪圖牀,但是可能會有一些網站基於referrer規則的功能會異常


2.2 IMG標籤

既然是圖片資源,那麼在HTML5中的img標籤有一個referrerpolicy的屬性,可以顯示聲明referrer規則,所以在圖片標籤中加入一個屬性即可

<img src="https://wx4.sinaimg.cn/large/006WvzUFly4g2fbc9ojcbj30j60auq3j.jpg" referrerpolicy="no-referrer">

2.3 未開啓防盜鏈的域名前綴

大家都知道新浪圖片的域名前綴很多,其中有的域名前綴並沒有和諧,所以可嘗試替換域名前綴

ww1ww2ww3tva1wx4的域名前綴並未開啓防盜鏈

如果各位還有什麼未開啓防盜鏈的域名,請評論或留言告知


2.4 Nginx反向代理

反向代理就是一種,代理請求的方式,相當於是,自己的服務器去訪問圖片,然後將圖片轉發給用戶

如果您使用的是寶塔服務器面板,那麼可以如下配置:

Nginx反向代理

同時記得開啓緩存,時間越大越好(避免頻繁請求)


2.5 更換圖牀

這裏小東就不推薦什麼了,小東自建的天雲圖牀其實很不錯,平時一直在維護中,確保資源不出問題。

天雲圖牀

網址:http://img.top15.cn


2.6 圖片本地化

圖片存放在別人的服務器上,總覺得不踏實,那麼就可以將之前存放在新浪服務器上的圖片,下載到自己的服務器上。

如果覺得本地化後網站訪問速度慢,那麼可以購買 CDN 服務,同時網上還有一些免費的 CDN服務,比如 360安全寶百度的免費 CDN,站長朋友可以嘗試使用,不懂的可以留言評論。

如果是emlog博客 CMS 的站長,可以下載安裝小東寫的“ 圖片本地化插件 ”,能夠快速下載遠程圖片到服務器,並且替換文章中的遠程圖片,一鍵操作。

下載地址:https://blog.dyboy.cn/develop/88.html


0x03 其他解決方法

小東博客之前部分文章是使用的新浪圖牀的圖片外鏈,我直接選擇更換圖牀,寫了一個 python 腳本,直接將新浪的圖片下載下來,然後上傳到另一個圖牀,並且替換文章內容中的圖片鏈接,也是很方便的,有相關技術的朋友可以弄一弄。如果需要此類幫助的,可以付費聯繫小東。

腳本批量

其他的方法,應該是還有一些,如果各位還有什麼比較好的方式,歡迎留言,互相交流圖牀失效解決辦法的相關技術

原文地址:https://blog.dyboy.cn/program/131.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章