資源防采集:產品如何進行防采集處理?

3 評論 7686 瀏覽 17 收藏 13 分鐘

作者對資源竊取進行了一定的介紹分析,并分享了一些防護措施,希望對你有益。

近一兩年中,“內容為王”被越來越多的互聯網人所提及,就連BAT這些大佬級別的公司,也開始在內容領域投入大量的人力財力,各種資源內容層出不窮。但在這個時期,很多產品因風控意識不強、版權意識不足等問題,導致了大量核心資源外泄。今天我們就來簡單聊聊如何防止這些“無形的偷盜者”。(此篇非技術篇,技術大神們手下留情)

偷盜者常用的盜竊手段

在文章開始,我們先簡單聊聊我理解的惡意采集。所謂的惡意采集,就是將別家網站的圖片、文字、視頻、音頻等資源下載至自家服務器,經簡單處理后放入自家網站使用的過程。從這個定義中,我們可以看到,惡意采集是一種損人利己的行為。但是類似于百度蜘蛛、google蜘蛛這種可以帶來流量的采集,我們不將他計入惡意采集的范疇。

接下來進入正題,我們來看看采集者通常是通過什么手段來采集我們的資源的。

盜取下載鏈接

這種盜取方式很好理解,在很多下載網站中(如百度文庫、道客巴巴、21世紀教育網),當用戶去請求下載的時候,服務器通常會返回一個下載鏈接給瀏覽器,用于下載。在這個過程中,采集者會將鏈接攔截下來,進行相應的解析,再通過腳本執行自動下載。喝杯茶的功夫,資源已經被采集走了。

百度文庫資源下載頁面

盜取頁面的內容

很多網站為了用戶體驗,通常會將一部分想看到的數據,直接加載在頁面上,讓用戶進行查看。這時候采集者只需要解析頁面的html結構,就能將頁面的信息全部采集下來。百度爬蟲、快照、頁面采集基本上都是用了這個原理。

起點中文網

直接盜取web數據庫

這個就比較高級了,采集者通常會編寫一個爬蟲,讓爬蟲自動發現網站上的查詢接口,并且模擬接口的數據標準,向接口傳輸相應的查詢指令,最后將返回的數據進行整理處理,就完成了相應的資源采集。

手動采集

手動采集從字面上理解,就是通過人工進行資源的采集,這種方式適用范圍比較靈活,可以通過資源下載、復制等人工方式進行資源的采集。這種方式看著很low,效率很低。但往往這種采集方式,讓人無比頭疼。

PS:1個用戶在A網站下載了一份word資料,經過簡單編輯后,上傳到自己的網站上進行使用。這個過程就無法通過技術手段進行跟蹤(整個過程全是用戶的真實操作),即使發現了這種現象,也無法確定對方盜取了自己的資源,因為你沒有切實可行的證據。此處大家可以思考一下,百度文庫的一部分內容是怎么來的。

防采集方法策略

上文中簡單介紹了部分采集者的采集手段,接下來我們聊聊該如何進行防采集處理。

應對下載鏈接泄露的策略

上圖為一份資料的下載流程,通過這個流程,我們發現,如果采集者可以直接拿到步驟3的下載鏈接,是可以不需要經過步驟2的驗證,直接下載資源。這樣我們就清楚了,要防止這種采集方式的話,我們的重點在于不讓用戶拿到資源的下載鏈接。那我們就可以按照下面的方式進行處理:

將下載鏈接進行加密

程序猿在開發過程中,基本都會進行下載鏈接的加密處理。加密就好比一把鑰匙,沒有鑰匙就開不了鎖,加密一樣的,不知道解密方式,是無法破解你的下載鏈接,這樣便實現了資源的防采集。

解密是需要知道加密規則的,所以在做加密處理的時候,最好不要使用第三方機加密規則,自己做最安全。定期維護加密規則,也是有必要的。

防止采集者攔截下載鏈接

有一部分采集者,會在步驟3與步驟4之間,攔截傳輸出去的下載鏈接。這樣他不需要經過步驟2,一樣能拿到我們返回的下載鏈接進行下載。遇到這種情況的時候,我們可以考慮在下載url加入用戶驗證。在瀏覽器解析url的時候,驗證當前用戶是否是我們的下載用戶,達到防采集的目的。除非用戶能拿到我們的賬戶信息,否則是不能采集到我們的內容。但是這種方法無法支持斷點下載。

告訴你一個秘密,將網站升級升https協議,可有效的防止數據的攔截哦。

應對頁面采集的策略

上圖為一個頁面完成顯示的過程,在這個過程中,我們可以發現,采集者如果要拿到這個頁面中的數據,必須進行第1步與第3步。所以我們需要在這兩步對采集者進行防范,具體的方式如下:

限制請求數量

我們可以通過限制關鍵數據的請求次數來限制采集者采集數據。這個很好理解,當用戶請求數據超過多少次的時候,再次請求,我們將不給他提供相應的數據。這個方法簡單粗暴,但是很有效果。在進行限制請求數據的時候,我們需要注意以下幾點:

  1. 判斷數據請求次數時,必須通過用戶名(用戶ID)進行判斷,不能通過IP地址。IP地址可以偽造,實現1次請求換1個IP都是可以的,所以通過IP地址判斷的話,基本沒什么效果。
  2. 保證賬號的注冊難度。很多產品僅開放了通過手機注冊賬號,即使使用第三方登錄,也需要綁定相應的手機號碼。這大大增加了采集者獲取賬號的難度。
  3. 評估用戶每日瀏覽這些關鍵數據的次數。盡量不影響用戶的正常使用。
  4. 提供無法直接使用的數據

頁面中加載的所有內容,采集下來都是可以直接使用的,那怎樣提供無法直接使用的數據呢?這里就不繞圈子了,所謂無法直接使用的數據,是因為采集的資源帶有部分版權,或者格式必須經過轉換才能使用。這樣便增加了采集的成本,在一定程度上預防了數據擦劑。

上圖是一個題庫產品的試題展示,他把試題中關鍵的部分(答案解析)用帶水印的圖片進行代替。當采集者發現要使用這些數據的話,需要將圖片記性處理,而且處理難度較大,成本較高。那還會采嗎?

加入干擾數據

將關鍵數據的html代碼中,加入錯誤/混亂的數據,利用爬蟲采集數據的規則,將干擾(混亂)的信息提供采集爬蟲,實現防采集的目的。這種方式會對網站的seo造成影響。

提供錯誤數據

當用戶請求數據的次數超過一定頻率的時候,再次請求時,可以傳輸錯誤的數據給采集者。采集者收錄到錯誤的數據后,會對整批采集的數據都抱有懷疑態度,而不敢使用此批資源。這種采集方式會對seo與用戶造成一定的影響,慎用。

通過用戶行為分析來防止采集

隨著技術越來越發達,對用戶行為的分析也逐漸成熟。我們可以將這項技術放在我們防采集領域,通過行為分析,判斷用戶是機器還是正常用戶。是機器的話,我們可以根據情況,彈出驗證碼進行驗證,也可以提供錯誤的數據。

上述的5種方式,是可以同時進行使用的,例如(1)與(2)合并在一起,在用戶未登錄的時候提供方案(2),用戶已登錄時,提供體驗更好的方案(1)。更多的組合方式,可以自行進行組合。

應對頁面采集時,需要考慮到seo的問題,千萬不要將錯誤信息提供給爬蟲(百度、谷歌等爬蟲)。所以如果發現是這些“益蟲”在采集數據的時候,盡量提供完整且正確的數據給它們吧。

應對手動采集的策略

前文說過,手動采集是最難防的,但是也不是沒有應對方式,但是從根本上杜絕,也是很麻煩的。下面我們介紹幾種方式:

  1. 、頁面內容防復制。通過防復制處理,可避免普通用戶復制頁面內容,但是稍微懂點技術的人員,此功能是形同虛設的。
  2. 、限制用戶每天的下載量。
  3. 、下載的文件中,帶有產品的版權信息。視頻中帶有logo;文件中帶水?。晃募旧碇性黾硬挥绊懳募褂玫臉俗R。當我們的內容被上傳到別的網站后,我們可以通過這些標識來維權,并要求對方下架相關資源。
  4. 采用人工檢測,封號。

應對直接攻擊web數據庫的策略

程序猿知道這個如何去做,相信你的小組成員,讓他去解決吧!

總結

此篇文章主要是拋磚引玉,希望通過我的分享,能讓大家對防采集有個初步的認識,并應用到相應的產品規劃中,增加產品的安全性。

 

作者:李英杰,二一教育高級產品經理,3年互聯網產品設計經驗,主要負責題庫類產品的規劃與運營工作。

本文由 @李英杰 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自PEXELS,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 寫的特別好,我就想問:停車場那道題為什么選B ??

    來自廣東 回復
    1. 對,本文的重點沒講。。為啥選B

      來自福建 回復
    2. 不是選A嗎?怎么選B呢

      回復