資源防采集:產(chǎn)品如何進(jìn)行防采集處理?
作者對資源竊取進(jìn)行了一定的介紹分析,并分享了一些防護(hù)措施,希望對你有益。
近一兩年中,“內(nèi)容為王”被越來越多的互聯(lián)網(wǎng)人所提及,就連BAT這些大佬級別的公司,也開始在內(nèi)容領(lǐng)域投入大量的人力財(cái)力,各種資源內(nèi)容層出不窮。但在這個(gè)時(shí)期,很多產(chǎn)品因風(fēng)控意識不強(qiáng)、版權(quán)意識不足等問題,導(dǎo)致了大量核心資源外泄。今天我們就來簡單聊聊如何防止這些“無形的偷盜者”。(此篇非技術(shù)篇,技術(shù)大神們手下留情)
偷盜者常用的盜竊手段
在文章開始,我們先簡單聊聊我理解的惡意采集。所謂的惡意采集,就是將別家網(wǎng)站的圖片、文字、視頻、音頻等資源下載至自家服務(wù)器,經(jīng)簡單處理后放入自家網(wǎng)站使用的過程。從這個(gè)定義中,我們可以看到,惡意采集是一種損人利己的行為。但是類似于百度蜘蛛、google蜘蛛這種可以帶來流量的采集,我們不將他計(jì)入惡意采集的范疇。
接下來進(jìn)入正題,我們來看看采集者通常是通過什么手段來采集我們的資源的。
盜取下載鏈接
這種盜取方式很好理解,在很多下載網(wǎng)站中(如百度文庫、道客巴巴、21世紀(jì)教育網(wǎng)),當(dāng)用戶去請求下載的時(shí)候,服務(wù)器通常會返回一個(gè)下載鏈接給瀏覽器,用于下載。在這個(gè)過程中,采集者會將鏈接攔截下來,進(jìn)行相應(yīng)的解析,再通過腳本執(zhí)行自動下載。喝杯茶的功夫,資源已經(jīng)被采集走了。
百度文庫資源下載頁面
盜取頁面的內(nèi)容
很多網(wǎng)站為了用戶體驗(yàn),通常會將一部分想看到的數(shù)據(jù),直接加載在頁面上,讓用戶進(jìn)行查看。這時(shí)候采集者只需要解析頁面的html結(jié)構(gòu),就能將頁面的信息全部采集下來。百度爬蟲、快照、頁面采集基本上都是用了這個(gè)原理。
起點(diǎn)中文網(wǎng)
直接盜取web數(shù)據(jù)庫
這個(gè)就比較高級了,采集者通常會編寫一個(gè)爬蟲,讓爬蟲自動發(fā)現(xiàn)網(wǎng)站上的查詢接口,并且模擬接口的數(shù)據(jù)標(biāo)準(zhǔn),向接口傳輸相應(yīng)的查詢指令,最后將返回的數(shù)據(jù)進(jìn)行整理處理,就完成了相應(yīng)的資源采集。
手動采集
手動采集從字面上理解,就是通過人工進(jìn)行資源的采集,這種方式適用范圍比較靈活,可以通過資源下載、復(fù)制等人工方式進(jìn)行資源的采集。這種方式看著很low,效率很低。但往往這種采集方式,讓人無比頭疼。
PS:1個(gè)用戶在A網(wǎng)站下載了一份word資料,經(jīng)過簡單編輯后,上傳到自己的網(wǎng)站上進(jìn)行使用。這個(gè)過程就無法通過技術(shù)手段進(jìn)行跟蹤(整個(gè)過程全是用戶的真實(shí)操作),即使發(fā)現(xiàn)了這種現(xiàn)象,也無法確定對方盜取了自己的資源,因?yàn)槟銢]有切實(shí)可行的證據(jù)。此處大家可以思考一下,百度文庫的一部分內(nèi)容是怎么來的。
防采集方法策略
上文中簡單介紹了部分采集者的采集手段,接下來我們聊聊該如何進(jìn)行防采集處理。
應(yīng)對下載鏈接泄露的策略
上圖為一份資料的下載流程,通過這個(gè)流程,我們發(fā)現(xiàn),如果采集者可以直接拿到步驟3的下載鏈接,是可以不需要經(jīng)過步驟2的驗(yàn)證,直接下載資源。這樣我們就清楚了,要防止這種采集方式的話,我們的重點(diǎn)在于不讓用戶拿到資源的下載鏈接。那我們就可以按照下面的方式進(jìn)行處理:
將下載鏈接進(jìn)行加密
程序猿在開發(fā)過程中,基本都會進(jìn)行下載鏈接的加密處理。加密就好比一把鑰匙,沒有鑰匙就開不了鎖,加密一樣的,不知道解密方式,是無法破解你的下載鏈接,這樣便實(shí)現(xiàn)了資源的防采集。
解密是需要知道加密規(guī)則的,所以在做加密處理的時(shí)候,最好不要使用第三方機(jī)加密規(guī)則,自己做最安全。定期維護(hù)加密規(guī)則,也是有必要的。
防止采集者攔截下載鏈接
有一部分采集者,會在步驟3與步驟4之間,攔截傳輸出去的下載鏈接。這樣他不需要經(jīng)過步驟2,一樣能拿到我們返回的下載鏈接進(jìn)行下載。遇到這種情況的時(shí)候,我們可以考慮在下載url加入用戶驗(yàn)證。在瀏覽器解析url的時(shí)候,驗(yàn)證當(dāng)前用戶是否是我們的下載用戶,達(dá)到防采集的目的。除非用戶能拿到我們的賬戶信息,否則是不能采集到我們的內(nèi)容。但是這種方法無法支持?jǐn)帱c(diǎn)下載。
告訴你一個(gè)秘密,將網(wǎng)站升級升https協(xié)議,可有效的防止數(shù)據(jù)的攔截哦。
應(yīng)對頁面采集的策略
上圖為一個(gè)頁面完成顯示的過程,在這個(gè)過程中,我們可以發(fā)現(xiàn),采集者如果要拿到這個(gè)頁面中的數(shù)據(jù),必須進(jìn)行第1步與第3步。所以我們需要在這兩步對采集者進(jìn)行防范,具體的方式如下:
限制請求數(shù)量
我們可以通過限制關(guān)鍵數(shù)據(jù)的請求次數(shù)來限制采集者采集數(shù)據(jù)。這個(gè)很好理解,當(dāng)用戶請求數(shù)據(jù)超過多少次的時(shí)候,再次請求,我們將不給他提供相應(yīng)的數(shù)據(jù)。這個(gè)方法簡單粗暴,但是很有效果。在進(jìn)行限制請求數(shù)據(jù)的時(shí)候,我們需要注意以下幾點(diǎn):
- 判斷數(shù)據(jù)請求次數(shù)時(shí),必須通過用戶名(用戶ID)進(jìn)行判斷,不能通過IP地址。IP地址可以偽造,實(shí)現(xiàn)1次請求換1個(gè)IP都是可以的,所以通過IP地址判斷的話,基本沒什么效果。
- 保證賬號的注冊難度。很多產(chǎn)品僅開放了通過手機(jī)注冊賬號,即使使用第三方登錄,也需要綁定相應(yīng)的手機(jī)號碼。這大大增加了采集者獲取賬號的難度。
- 評估用戶每日瀏覽這些關(guān)鍵數(shù)據(jù)的次數(shù)。盡量不影響用戶的正常使用。
- 提供無法直接使用的數(shù)據(jù)
頁面中加載的所有內(nèi)容,采集下來都是可以直接使用的,那怎樣提供無法直接使用的數(shù)據(jù)呢?這里就不繞圈子了,所謂無法直接使用的數(shù)據(jù),是因?yàn)椴杉馁Y源帶有部分版權(quán),或者格式必須經(jīng)過轉(zhuǎn)換才能使用。這樣便增加了采集的成本,在一定程度上預(yù)防了數(shù)據(jù)擦劑。
上圖是一個(gè)題庫產(chǎn)品的試題展示,他把試題中關(guān)鍵的部分(答案解析)用帶水印的圖片進(jìn)行代替。當(dāng)采集者發(fā)現(xiàn)要使用這些數(shù)據(jù)的話,需要將圖片記性處理,而且處理難度較大,成本較高。那還會采嗎?
加入干擾數(shù)據(jù)
將關(guān)鍵數(shù)據(jù)的html代碼中,加入錯(cuò)誤/混亂的數(shù)據(jù),利用爬蟲采集數(shù)據(jù)的規(guī)則,將干擾(混亂)的信息提供采集爬蟲,實(shí)現(xiàn)防采集的目的。這種方式會對網(wǎng)站的seo造成影響。
提供錯(cuò)誤數(shù)據(jù)
當(dāng)用戶請求數(shù)據(jù)的次數(shù)超過一定頻率的時(shí)候,再次請求時(shí),可以傳輸錯(cuò)誤的數(shù)據(jù)給采集者。采集者收錄到錯(cuò)誤的數(shù)據(jù)后,會對整批采集的數(shù)據(jù)都抱有懷疑態(tài)度,而不敢使用此批資源。這種采集方式會對seo與用戶造成一定的影響,慎用。
通過用戶行為分析來防止采集
隨著技術(shù)越來越發(fā)達(dá),對用戶行為的分析也逐漸成熟。我們可以將這項(xiàng)技術(shù)放在我們防采集領(lǐng)域,通過行為分析,判斷用戶是機(jī)器還是正常用戶。是機(jī)器的話,我們可以根據(jù)情況,彈出驗(yàn)證碼進(jìn)行驗(yàn)證,也可以提供錯(cuò)誤的數(shù)據(jù)。
上述的5種方式,是可以同時(shí)進(jìn)行使用的,例如(1)與(2)合并在一起,在用戶未登錄的時(shí)候提供方案(2),用戶已登錄時(shí),提供體驗(yàn)更好的方案(1)。更多的組合方式,可以自行進(jìn)行組合。
應(yīng)對頁面采集時(shí),需要考慮到seo的問題,千萬不要將錯(cuò)誤信息提供給爬蟲(百度、谷歌等爬蟲)。所以如果發(fā)現(xiàn)是這些“益蟲”在采集數(shù)據(jù)的時(shí)候,盡量提供完整且正確的數(shù)據(jù)給它們吧。
應(yīng)對手動采集的策略
前文說過,手動采集是最難防的,但是也不是沒有應(yīng)對方式,但是從根本上杜絕,也是很麻煩的。下面我們介紹幾種方式:
- 、頁面內(nèi)容防復(fù)制。通過防復(fù)制處理,可避免普通用戶復(fù)制頁面內(nèi)容,但是稍微懂點(diǎn)技術(shù)的人員,此功能是形同虛設(shè)的。
- 、限制用戶每天的下載量。
- 、下載的文件中,帶有產(chǎn)品的版權(quán)信息。視頻中帶有l(wèi)ogo;文件中帶水??;文件本身中增加不影響文件使用的標(biāo)識。當(dāng)我們的內(nèi)容被上傳到別的網(wǎng)站后,我們可以通過這些標(biāo)識來維權(quán),并要求對方下架相關(guān)資源。
- 采用人工檢測,封號。
應(yīng)對直接攻擊web數(shù)據(jù)庫的策略
程序猿知道這個(gè)如何去做,相信你的小組成員,讓他去解決吧!
總結(jié)
此篇文章主要是拋磚引玉,希望通過我的分享,能讓大家對防采集有個(gè)初步的認(rèn)識,并應(yīng)用到相應(yīng)的產(chǎn)品規(guī)劃中,增加產(chǎn)品的安全性。
作者:李英杰,二一教育高級產(chǎn)品經(jīng)理,3年互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)經(jīng)驗(yàn),主要負(fù)責(zé)題庫類產(chǎn)品的規(guī)劃與運(yùn)營工作。
本文由 @李英杰 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自PEXELS,基于CC0協(xié)議
寫的特別好,我就想問:停車場那道題為什么選B ??
對,本文的重點(diǎn)沒講。。為啥選B
不是選A嗎?怎么選B呢