何謂盜鍊:百度百科解釋(盜鍊是指服務提供商自己不提供服務的内容,通過技術手段繞過其它有利益的最終使用者界面(如廣告),直接在自己的網站上向最終使用者提供其它服務提供商的服務内容,騙取最終使用者的浏覽和點選率。受益者不提供資源或提供很少的資源,而真正的服務提供商卻得不到任何的收益。)!網站資源被盜鍊簡單來說就是别人不是從你的網站通過下載下傳資源!
盜鍊是什麼?盜鍊與廣告流量問題及如何防止
盜鍊危害:對電腦使用者沒有危害 但是會拖累被盜鍊網站的速度!
被盜鍊的幾種可能情況:
1、人氣非常旺的網站、論壇、社群的網頁裡直接引用了(使用标記)你網站上的圖檔,或者直接在其他網頁(使用flash或媒體播放插件)裡嵌入了你網站上的mp3。
2、在人氣非常旺的網站、論壇、社群裡提供了你的資源的下載下傳位址。
3、你網站的資源可能被一些下載下傳軟體列入了“資源候選名單”,當其他人用下載下傳工具下載下傳相同的檔案時,下載下傳軟體會自動找上門并且從你的伺服器下載下傳。
盜鍊增加網站流量的問題
有聯盟的一些網站長對盜鍊的了解還很片面和模糊,尤其是對于流量者一塊!比如有站長對小編說:“我了解的盜鍊就是a網站上的圖檔 視訊或者下載下傳資源被爬蟲爬去放到了b的網站上,使用者通路b網站上的這些連結,流量就算在了a頭上。這不是正好提升了a網站的流量嗎,繼而廣告聯盟等費用也會增加。為什麼還要防盜鍊呢?”
對于這個問題這位站長說的流量增加是必須的,廣告聯盟費用增加基本上是不會的。小編分成兩種情況來說一下
第一種。即你了解的所指出的那種情況。
一般都是視訊網站的【分享】,注意,是分享,不是盜鍊,因為是直接調用的分享連結,是以播放的内容均由視訊網站提供,與官網上播放内容并無二緻。是以這種情況,是不會給視訊網站帶來任何損失,隻會帶來更多收益。嚴格來說,這根本不屬于盜鍊,這種分享是視訊網站官方提供的也正是它們希望的。至于直接引用其他網站超連結,那是純粹給其他網站引流,和前面分享的效果一樣。
第二種。這就是我要說的規規矩矩的盜鍊了。
先說上面說過的視訊類。這類盜鍊是從源頭重新解析(多是vip代了解析)視訊,得到的就是純視訊資訊的連結,加上第三方的播放器進行解碼播放,就實作了免費、付費視訊的無廣告播放,這樣很顯然就已經讓視訊網站在這部分隻有支出沒有收益了。另外,更多的vip代了解析都會在第三方播放器代碼中加入自己的浮窗廣告、隐藏點選廣告等來為自己賺取收益。
圖檔類和音頻類就更不用說了,盜鍊起來也是非常簡單的。一般網站如果不對這些資源的防盜進行專門處理,資源的直鍊就是任人宰割的羔羊,白白承擔流量帶來的費用,不會有任何收益,同時被盜鍊的網站負載也會變大、使用者體驗也會變差,并且通常還找不出是誰盜鍊的。像各種網盤,例如百度網盤之類的都刻意對檔案的直鍊做了各種隐藏的工作,不過要找到直鍊也不是問題,不過也會加入一些時效的參數,讓直鍊并不能存活太久。是以打網盤直鍊主意的人不少,真正做到的卻不多。
關于廣告聯盟。廣告聯盟的網頁廣告的連結都是放在網頁代碼上的,和資源的連結是分離的。即使是視訊網站,也是他們自己的播放器在呈現給使用者的時候将廣告、水印和視訊整合在一起的。
盜鍊的終極目标就是兩個,一是分離資源和廣告,隻要資源,二是盡量能長期穩定地調用。
關于盜鍊現狀。對于普通的網站,小圖檔産生的流量肯定是負擔得起的,高清的圖檔、音頻、大型文檔、軟體包等大規格檔案的下載下傳分發對一般的小站長來說,流量是個無底洞,是無法承擔的。除了像華軍下載下傳那些老牌或新起的大牌網站才有自己的cnd下載下傳分發服務外,幾乎所有的下載下傳分發站點(特别是軟體站)都是采用的第三方伺服器提供的下載下傳,其中以百度網盤分享連結居多,其次就是盜鍊,但個人感覺還不算泛濫,擁有自己下載下傳分發伺服器的那些網站也會在檔案裡加上自己網站的各種廣告(包括但不限于在圖檔和視訊中加廣告、在壓縮包備注中加網站廣告、在每個檔案夾中加入網站的各種超連結等行為)再加上一定的防盜鍊措施,大家就也懶得盜鍊他家的資源了,畢竟誰也不願意跟别人免費打廣告。
說了什麼是盜鍊和盜鍊危害以及站長對盜鍊的一些片面了解,我們還是要說到重點就是盜鍊如何防止呢?
可以從以下幾個方面來進行盜鍊防盜:
方法1:判斷引用位址
方法2:使用post下載下傳
用戶端浏覽器請求資源都是使用http的get方法的,其實使用post方法也可以往用戶端傳回資料。是以可以将下載下傳連結換成一個表單(form)和一個按鈕(submit),将待下載下傳的檔案的名稱或id放到表單的一個隐藏文本框(input)裡,當使用者點選送出按鈕時,服務程式先判斷請求是否為 post方式,如果是則讀取目标資源的二進制資料并寫入響應對象(在asp.net裡是respone.binarywrite方法)。
使用這個方法的缺點同樣是無法使用下載下傳工具,更沒法實作斷點續傳。 不過比方法2,3好一點的是,下載下傳工具不會攔截你的下載下傳動作,是以正常使用者還是比較順暢地下載下傳到檔案。這個方法比較适合小檔案的下載下傳。
方法3:使用圖形驗證碼
使用這個方法可以保證每次下載下傳都是“人”在你的網站上下載下傳,而不是下載下傳工具。因為網上很多介紹使用圖形驗證碼的方法,是以這裡就不再重複了。這個方法的缺點是比較容易讓正常的使用者感到麻煩。
方法4:使用登入驗證
這個方法常見于論壇、社群。當訪客請求網站上的一個資源時,先判斷此請求是否通過登入驗證(在asp.net裡常用session或form驗證來記錄登入狀态),如果尚未登入則傳回一個錯誤提示資訊。使用這個方法還可以進一步判斷登入的使用者的權限是否足夠,以實作帶“權限”的下載下傳。
不過因為登入狀态依賴于會話id,而會話id往往儲存于http請求的cookie字段裡,下載下傳工具一般沒法獲得浏覽器的cookie字段,是以這些資源往往無法使用下載下傳工具來下載下傳,給正常合法使用者帶來諸多不便(因為大部分網民的系統都安裝了下載下傳工具,一點選下載下傳連結一般會被下載下傳工具攔截,導緻無法使用浏覽器本身的下載下傳功能)。簡單的解決方法是将這個session id放到url中。
這種方法的另外一個缺點是訪客無法匿名下載下傳,是以這個方法一般隻用于論壇和社群網站。
方法5:使用cookie
其實這種方法原理上跟方法2差不多。就是在顯示“下載下傳”連結的頁面裡産生一個動态值的cookie,然後在處理資源下載下傳請求時先判斷cookie裡有沒有正确的cookie,如果沒有則傳回錯誤提示資訊。至于這個動态值如何産生,隻要能逆向判斷動态值是否合法的都可以,例如将目前的時間去除秒數取哈希值(也叫散列值)。如果網頁程式是asp.net則更簡單,可以往session裡随便存一個字元串或數字,然後在處理下載下傳請求時先檢查session 裡是否存在這個字元串或數字。使用這個方法的缺點跟方法2一樣。
方法6:使用動态檔案名
也叫動态鑰匙法,當使用者點選一個下載下傳連結時,先在程式端計算一個key(使用一定規律産生的key,最好不要使用随機字元串例如guid,并且這個 key必須有一定時效的),然後在資料庫或cache裡記錄這個key以及它所對應的資源id或檔案名,最後讓網頁重定向一個新的url位址,這個新 url位址裡需要包含這個key。當浏覽器或下載下傳工具發出下載下傳請求時,程式先檢測這個key是否存在,如果存在則傳回對應的資源資料。
使用這個方法的好處是下載下傳工具也可以下載下傳,并且在key失效前可以斷點續傳,并且可以通過key來控制下載下傳的線程數。
使用這個方法(包括以上所有支援下載下傳工具的方法)的缺點是:當任意一個使用者下載下傳成功之後,你的資源就會被一些下載下傳工具列入“資源候選名單”,以後其他人在其他地方下載下傳同樣的檔案時,下載下傳工具會不斷連接配接你的伺服器,即使你的檔案已經删除或者key已經失效了,這樣會造成類ddos攻擊的後果,下面再介紹兩個即可以讓下載下傳工具下載下傳,又可以防止盜鍊的方法。
方法7:擅改資源的内容
一般熱門的資源都是電影、mp3、較大的壓縮包等,這些檔案都是有很多可以插入資料的地方的,例如mp3有一個tag區,rar/zip有一個備注區,電影的内容随便一個地方,隻要在下載下傳過程當中,動态地往這些地方注入一些随機的位元組(幾個位元組即可),就可以達到讓整個檔案的哈希值(即散列值、指紋值)發生改變,讓從你網站下載下傳的檔案的哈希值跟别人的不一樣,就可以防止下載下傳工具主動找上門了。用這個方法配合方法6,可以達到較好的防盜鍊的效果。缺點是,雖然檔案被修改的部分不會被“看”、“聽”出來,不過多多少少讓知道的人覺得不爽。另外就是如果别人把從你網站下載下傳的檔案放到其他網站,那麼仍然存在下載下傳工具主動找上門的情況(雖然實際上它下載下傳不了内容)。
方法8:打包下載下傳
這個方法跟方法7的道理是一樣的,隻不過這次不是往原始檔案裡修改,而是在原始的檔案基礎上再加個“外殼”,讓資源的哈希值跟别人的不一樣。使用這個方法可以在不擅改資源原始的内容基礎上實作方法6同樣的效果,并且狠一點的話,甚至可以在打包的時候放入自己的一些廣告。缺點是使用者每次下載下傳都得加壓縮,不過目前大部分人都懂得解壓,是以這個缺點有時可以忽略不計。
更多相關文章推薦