歡迎關注我的微信公衆號: 小哈學Java, 文末分享阿里 P8 高級架構師吐血總結的 《Java 核心知識整理&面試.pdf》資源連接!!html
我的網站: https://www.exception.site/essay/how-to-set-aliyun-oss-http-refererjava
1、背景面試
2、背後有啥貓膩瀏覽器
3、什麼是盜鏈?緩存
4、爲何會被盜鏈?服務器
5、OSS 設置防盜鏈微信
6、驗證一下效果架構
7、另一些應對手段curl
小哈前天陸續接到三個電話,但都由於忙於工做、下雨天等各類因素致使沒接上,電話均來自杭州,心理一想,估計是阿里雲的客服吧,由於以前也會偶爾接到他們的電話,好比回訪之類的。學習
感受應該也不是什麼要緊的事兒。直到晚上,躺在牀上休息的時候,無心翻動手機,鬼使神差的,我點開了短信查看。
PS: 小哈日常不怎麼主動去翻短信,短信上常年數字 1000+,主要裏面內容基本上是一些驗證碼啊、垃圾短信啊啥的,也懶得去清理。
無心間看到下面這條短信:
打了一個激靈,事情並不簡單,若是還不及時續費,網站圖片(小哈網站圖片均存儲在阿里雲 OSS 對象存儲上)都將沒法訪問!
嚇得我趕忙又續費了 50 塊錢!
暫時解決了 OSS 快到期的問題後,我開始回想整個事情的通過。OSS 當時開通的是按時付費的,由於使用的比較少,選擇按時付費要更划算一些。
可是這一個月來,小哈寫博客頻率高了一些,另外一方面,也爲了公衆號文章能有個良好的閱讀體驗,也是能用圖片展現的,就儘可能少上一行代碼。
可是小哈的個站,天天的訪問量只有可憐的幾十個IP, 可是 OSS 後臺的統計是下面這個鬼樣子的:
存儲用量暫且不說,外網流出流量 50G+,圖片讀請求 10w+, 什麼鬼啊!這個數據對於天天訪問幾十個IP的個站,絕對是不正常的!
因爲是按小時付費,峯值的時候,每小時就耗費5塊大洋,這誰頂得住啊,帳戶上就那點錢,不欠費纔怪呢!
問題緣由,小哈首先想到的是圖片被盜鏈了!
如下來自百度百科官方解釋:
盜鏈是指服務提供商本身不提供服務的內容,經過技術手段繞過其它有利益的最終用戶界面(如廣告),直接在本身的網站上向最終用戶提供其它服務提供商的服務內容,騙取最終用戶的瀏覽和點擊率。受益者不提供資源或提供不多的資源,而真正的服務提供商卻得不到任何的收益。
通俗來講,就是存儲在小哈圖片服務器上圖片,在未通過受權的狀況下,被別人擅自使用了。
有一些相似於下圖中爬蟲網站,天天大批量的爬取文章,憑着本身網站權重高,即便不是原創,也能在百度中排名靠前,賺取廣告費啥的,這裏不得不吐槽一下百度。
好了,迴歸正題,這些爬蟲網站沒有本身的圖片服務器(由於要錢),而是直接引用的原文的圖片連接:
最終,這些圖片的請求流量,全都由圖片的全部者來買單。
OSS 是按使用量收費的服務,爲了減小存儲於 OSS 的數據被其餘人盜鏈而產生額外費用,OSS自己是支持設置Referer,基於 HTTP 和 HTTPS header 中表頭字段Referer 的防盜鏈方法。
咱們能夠經過控制檯爲本身的存儲空間設置 Referer 字段的白名單、以及是否容許 Referer 字段爲空的請求訪問。
接下來,進入阿里雲控制檯,設置 OSS 白名單,這裏我設置爲本身的網站域名 www.exception.site, 也就是說 header 請求頭中, Referer 爲 www.exception.site 的網站,才能被夠容許訪問,不然直接拒絕:
經過 curl
命令來訪問一下 bucket 中的某張圖片,此時 header 頭中的 Referer 屬性值爲空,看下是否可以正常訪問:
能夠看到請求失敗 AccessDenied
.
經過 -e
參數傳遞一個未設置在白名單中的地址,看可以訪問成功:
依然不可以訪問成功,測試正常!
再來驗證下上面說的盜鏈網站是否還可以正常訪問,首先咱們清空瀏覽器緩存:
Nice!圖片已經打不開了。
這裏小哈直接訪問本身的網站來驗證效果:
圖片請求 header 頭的 Referer 屬性值與設置的一致,我的網站圖片均可以正常訪問。
除了防盜鏈的設置,目前來看按小時付費套餐已經不太合適了,在阿里雲上購買一個下行流量包,半年6個月,每月50G流量,價格60塊大洋,固然了,超出的得另算。
若是說將來流量繼續增大的話,那就要考慮帶過時時間的圖片訪問、CDN, 以及購買回源流量包了,那就是後話了,有機會小哈再給你們分享。下期見!
最近在網上發現一個不錯的 PDF 資源《Java 核心知識&面試.pdf》分享給你們,不光是面試,學習,你都值得擁有!!!
獲取方式: 關注公衆號: 小哈學Java, 後臺回覆資源,既可免費無套路獲取資源連接,下面是目錄以及部分截圖:
重要的事情說兩遍,關注公衆號: 小哈學Java, 後臺回覆資源,既可免費無套路獲取資源連接 !!!