阿里雲 OSS 如何設置防盜鏈, 上個月圖牀流量耗費50G+,請求次數10W+,什麼鬼?

歡迎關注我的微信公衆號: 小哈學Java, 優質文章第一時間獲取!!html

我的網站: www.exception.site/essay/how-t…瀏覽器

目錄

1、背景緩存

2、背後有啥貓膩服務器

3、什麼是盜鏈?微信

4、爲何會被盜鏈?curl

5、OSS 設置防盜鏈測試

6、驗證一下效果網站

7、另一些應對手段阿里雲

1、背景

小哈前天陸續接到三個電話,但都由於忙於工做、下雨天等各類因素致使沒接上,電話均來自杭州,心理一想,估計是阿里雲的客服吧,由於以前也會偶爾接到他們的電話,好比回訪之類的。url

感受應該也不是什麼要緊的事兒。直到晚上,躺在牀上休息的時候,無心翻動手機,鬼使神差的,我點開了短信查看。

PS: 小哈日常不怎麼主動去翻短信,短信上常年數字 1000+,主要裏面內容基本上是一些驗證碼啊、垃圾短信啊啥的,也懶得去清理。

手機短信1000+
手機短信1000+

無心間看到下面這條短信:

oss欠費通知
oss欠費通知

打了一個激靈,事情並不簡單,若是還不及時續費,網站圖片(小哈網站圖片均存儲在阿里雲 OSS 對象存儲上)都將沒法訪問!

嚇得我趕忙又續費了 50 塊錢!

充五十塊錢
充五十塊錢

2、背後有啥貓膩

暫時解決了 OSS 快到期的問題後,我開始回想整個事情的通過。OSS 當時開通的是按時付費的,由於使用的比較少,選擇按時付費要更划算一些。

可是這一個月來,小哈寫博客頻率高了一些,另外一方面,也爲了公衆號文章能有個良好的閱讀體驗,也是能用圖片展現的,就儘可能少上一行代碼。

可是小哈的個站,天天的訪問量只有可憐的幾十個IP, 可是 OSS 後臺的統計是下面這個鬼樣子的:

oss上個月使用狀況
oss上個月使用狀況

存儲用量暫且不說,外網流出流量 50G+,圖片讀請求 10w+, 什麼鬼啊!這個數據對於天天訪問幾十個IP的個站,絕對是不正常的!

支出狀況
支出狀況

因爲是按小時付費,峯值的時候,每小時就耗費5塊大洋,這誰頂得住啊,帳戶上就那點錢,不欠費纔怪呢!

問題緣由,小哈首先想到的是圖片被盜鏈了!

3、什麼是盜鏈?

oss文件請求圖譜
oss文件請求圖譜

如下來自百度百科官方解釋:

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

通俗來講,就是存儲在小哈圖片服務器上圖片,在未通過受權的狀況下,被別人擅自使用了。

4、爲何會被盜鏈?

有一些相似於下圖中爬蟲網站,天天大批量的爬取文章,憑着本身網站權重高,即便不是原創,也能在百度中排名靠前,賺取廣告費啥的,這裏不得不吐槽一下百度。

好了,迴歸正題,這些爬蟲網站沒有本身的圖片服務器(由於要錢),而是直接引用的原文的圖片連接:

盜鏈網站
盜鏈網站

盜鏈網站使用的圖片連接地址
盜鏈網站使用的圖片連接地址

最終,這些圖片的請求流量,全都由圖片的全部者來買單。

5、OSS 設置防盜鏈

OSS 是按使用量收費的服務,爲了減小存儲於 OSS 的數據被其餘人盜鏈而產生額外費用,OSS自己是支持設置Referer,基於 HTTP 和 HTTPS header 中表頭字段Referer 的防盜鏈方法。

咱們能夠經過控制檯爲本身的存儲空間設置 Referer 字段的白名單、以及是否容許 Referer 字段爲空的請求訪問。

接下來,進入阿里雲控制檯,設置 OSS 白名單,這裏我設置爲本身的網站域名 www.exception.site, 也就是說 header 請求頭中, Referer 爲 www.exception.site 的網站,才能被夠容許訪問,不然直接拒絕:

OSS設置防盜鏈
OSS設置防盜鏈

  • :選擇須要設置防盜鏈的 Bucket;
  • :設置防盜鏈 HTTP Referer 白名單;
  • :保存;

6、驗證一下效果

6.1 Referer 爲空測試

經過 curl 命令來訪問一下 bucket 中的某張圖片,此時 header 頭中的 Referer 屬性值爲空,看下是否可以正常訪問:

隨機訪問一下圖片
隨機訪問一下圖片

能夠看到請求失敗 AccessDenied.

6.2 Referer 一個不在白名單的域名測試

經過 -e 參數傳遞一個未設置在白名單中的地址,看可以訪問成功:

不存在於oss白名單中的地址訪問測試
不存在於oss白名單中的地址訪問測試

依然不可以訪問成功,測試正常!

再來驗證下上面說的盜鏈網站是否還可以正常訪問,首先咱們清空瀏覽器緩存:

圖片所有打不開了
圖片所有打不開了

Nice!圖片已經打不開了。

舒服了
舒服了

6.3 存在於白名單中的域名測試

這裏小哈直接訪問本身的網站來驗證效果:

看下我的網站是否可以正常訪問
看下我的網站是否可以正常訪問

圖片請求 header 頭的 Referer 屬性值與設置的一致,我的網站圖片均可以正常訪問。

7、另一些應對手段

除了防盜鏈的設置,目前來看按小時付費套餐已經不太合適了,在阿里雲上購買一個下行流量包,半年6個月,每月50G流量,價格60塊大洋,固然了,超出的得另算。

阿里雲半年流量包
阿里雲半年流量包

若是說將來流量繼續增大的話,那就要考慮帶過時時間的圖片訪問、CDN, 以及購買回源流量包了,那就是後話了,有機會小哈再給你們分享。下期見!

Ref

歡迎關注微信公衆號: 小哈學Java

關注微信公衆號【小哈學Java】,回覆【資源】,便可免費無套路領取資源連接哦
關注微信公衆號【小哈學Java】,回覆【資源】,便可免費無套路領取資源連接哦
相關文章
相關標籤/搜索