在這個資訊化的時代,資源被盜用是一件很讓人厭惡,但又很常見的事。比如,之前郭敬明的小說《夢裡花落知多少》剽竊莊羽小說《圈裡圈外》一事,雖然郭敬明通過個人微網誌向莊羽道歉,并表示“将把《夢裡花落知多少》這本小說出版後獲得的線上線下所有的版稅以及全部收益彙總計算清楚之後,全部賠償給莊羽女士”。而莊羽在接受郭敬明道歉後,提議一起成立一個反剽竊基金。
而網際網路不單讓資源流傳越發便利,也讓被盜用的資源從文字擴充到了圖檔、視訊等。可是并不是每一個人都會像莊女士那樣幸運,能得到應有的賠償。是以既然不能完全阻止别人盜竊資源,那麼采取防盜措施在一定程度上防止自己的資源被盜用,就變得重要起來。那麼如何保護我們的資源不被盜用呢?
要知道如何防盜,最優先的是知道自己什麼時候被盜了,不然你都不知道自己被盜了,也就無從談起防盜了。以個人網站為例,你剛上傳好了自己拍攝的新圖,卻發現網站通路速度越來越慢。你以為是自己拍攝的新圖吸引了大波使用者,就打開網站背景檢視今天的訪客數,卻發現隻有寥寥幾人。
遇到這種情況,很遺憾的告訴您:您的網站資源很大可能被别人盜用了!當你發現此事,并急急忙忙删除了這些資源,想讓伺服器緩一緩的時候,你會發現,自己的網站好像還是沒變快多少,檢視通路日志,發現請求還是會從四面八方湧過來。這種時候我們就可以用上防盜了。
最常見的防盜方式有以下幾種。雖然這些方法并不能完全解決資源被盜的情況,但可以有效減少資源被盜的影響:
使用 Referer 防盜鍊
這個方法是最常見的,舉個簡單的例子來說,就是當您網站程式接收到來源是 xx 域名的下載下傳請求時,會先判斷請求頭裡的 Referer 字段的值。如果是自己認識的域名,即自己設定的 Referer 白名單中的域名,就是合法的請求,可以下載下傳,否則傳回錯誤資訊。
使用登入驗證
這個方法一般是用在論壇、社群這些需要登入的網站上,當使用者通路一個資源時,先判斷該請求是否是通過登入驗證的。是的話,使用者可以安全下載下傳;如果不是,則傳回錯誤資訊。
使用 Cookie 驗證
這個方法跟上面的差不多,就是在下載下傳的頁面産生一個動态的 Cookie。在處理資源下載下傳請求時先判斷請求的 Cookie 裡面有沒有正确的 Cookie。有的話,使用者就可以合法下載下傳,沒有則會傳回錯誤資訊。
使用圖形驗證碼
這個方法可以防止機器程式等不是“人”的請求對資源的下載下傳。相信大家也遇到過,就是從多幅圖檔中選出正确的圖檔,否則不給通過。不過這個方法比較容易讓正常的使用者感到厭煩。
擅改資源内容
像網站上的熱門電影,MP3 等,壓縮包一般都比較大,這些大的壓縮封包件是有很多可以插入資料的地方的。比如 MP3 有一個 tag 區,zip 有一個備注區,電影檔案内容的随便一個地方,隻要在下載下傳過程中動态的往這些地方注入一些随機位元組,就可以讓整個檔案的哈希值發生改變,可以有效的防止下載下傳工具找上門來下載下傳。
以上方法都需要大家在本地對資源對伺服器進行相關設定,如果你沒有對應的代碼知識,操作起來會有點困難,這種時候選擇接入雲服務商就是一個不錯的選擇。大部分雲服務商都提供多種防盜方式,以我們又拍雲為例:
水印防盜
通過在資源畫面内添加水印,這樣就算被盜走,别人檢視時也能從水印看到視訊來源。又拍雲提供兩種水印添加方式:
第一種,在檔案上傳到又拍雲存儲的時候,可以通過添加水印參數 /watermark/url/ 實作對圖檔水印的添加。視訊也是如此,隻是參數變成/wmImg/<watermark_img>,其中水印圖檔需要提前上傳到雲存儲服務下。,<watermark_img> 表示水印圖檔路徑的 Base64 編碼後的字元。如/watermark/url/L3BhdGgvdG8vd2F0ZXJtYXJrLnBuZw== 表示把 /path/to/watermark.png 這張圖檔作為水印。想了解更多可以點選↓↓閱讀原文↓↓
第二種,可以直接在又拍雲控制台對應的雲存儲服務下,建立縮略圖版本命名為【watermark】,并開啟裡面的水印功能。再通過 “url + 間隔符 + 版本号” 的形式,在通路圖檔的時候調用該縮略圖版本,就可以在通路圖檔的時候看到設定的水印了。
除了添加水印,又拍控制台還支援設定多種防盜鍊(例如上文提到的 Referer 防盜鍊),而且隻需要在控制台按照說明完成相關步驟達到防盜效果。
IP 黑白名單
又拍雲提供全部資源的通路日志,一旦發現資源被盜用,那麼可以通過通路日志查到對方的伺服器 IP,将此 IP 加入黑名單後,對方将永遠無法通路到你的任何資源。也就是拒絕對方通路。
地區通路限制
如果對方擁有很多IP,而無法具體判斷是哪個,那不妨看看地區通路限制。此功能可以允許或禁止特定區域的終端使用者對網站資源的通路,支援按國家/地區、省份、營運商等次元進行配置。
Referer 防盜鍊
這個就是上面提到的最常見的防盜鍊方式,但是在又拍雲使用非常簡單友善。隻需要開啟 Referer 黑名單,然後把盜用了您圖檔的網站位址填寫進去,點選确定,對方盜用的圖檔就會無法顯示。而查找盜用圖檔的網站,也可以通過又拍雲日志功能來查詢。
Token 防盜鍊
上文中有提到,防盜鍊并不能完全阻止資源被盜用的情況,如果盜鍊伺服器使用動态 IP,我們封禁起來就很麻煩;客戶請求不攜帶 Referer,那麼就會跳過 Referer 防盜鍊。
Token 防盜鍊就能夠處理這些問題。通過設定 Token 密鑰,配合簽名過期時間來控制資源内容的通路時限。這樣使用者必須攜帶正确的 Token,且隻能在規定時間内對該連結進行通路,可以有效的防止使用者惡意請求,造成沒必要的損失。
回源鑒權
我們也可以考慮回源鑒權,即在源站配置一台鑒權伺服器,并設定鑒權方式。之後 CDN 邊緣節點每次接受到請求之後,都會回使用者源站的鑒權伺服器進行驗證,驗證通過之後才認為是合法請求,CDN 才會繼續提供服務。
但是進階别的防盜方式也意味着防盜成本的上升,如何選擇合适自己防盜鍊也尤為重要。大家也可以看下《如何選擇适合自己網站的防盜鍊》 網際網路帶給我們豐富的娛樂生活,讓我們查找心儀的資源越來越友善,但是一定要記得支援正版,支援原版,盜用他人資源是侵犯了他人知識産權。如果你面臨着自己資源被盜的情況,除了使用技術手段進行防止,必要時刻也要拿起法律武器維護自己的合法權益哦~
進擊的 Ansible(二):如何快速搞定生産環境 Ansible 項目布局?
服務端渲染基礎