如何有效地防止網站和手機APP的數據被採集?

隨着Web數據採集技術的普及,大量網站和移動App的海量數據面臨着被抓取的威脅。從技術角度講Web數據採集技術是模擬瀏覽器或手機客戶端與Web服務器進行交互,該過程與合法的瀏覽器或手機客戶端直接訪問Web服務器並沒有本質的區別,這就增長了企業對自身數據保護的難度。算法

      咱們(西安鯤之鵬網絡信息技術有限公司)是一家專業從事網站(Web)數據採集的數據服務提供商,一直專一於網站(Web)數據抓取領域。公司前身是開始於2010年的鯤鵬Web數據採集工做室,爲澳大利亞、美國、香港、臺灣、中國大陸等地提供Web數據採集外包服務,前後成功完成了數千個數據採集項目。有着很是豐富的網站數據採集和反網站數據採集經驗。結合咱們自身豐富的數據採集經驗,咱們給出如下三種行之有效的反Web數據抓取方案。瀏覽器

1、        限制客戶端IP訪問頻率。服務器

適用:Web網站和移動App。網絡

表明應用:大衆點評網。併發

思路:數據採集程序的特色就是訪問速度快,一般一個客戶端IP向Web網站

服務器發出數十個甚至上百個併發請求,根據該特徵,咱們能夠在Web網站或移動App服務端程序增長策略,攔截頻率太高的訪問(中斷鏈接或返回異常頁面)。例如,咱們限制一個IP對咱們系統天天最大的訪問量是100次,那麼即使採集者擁有100個IP(或高匿名HTTP代理),天天的採集量也只能達到1萬個頁面,大大增長了採集的難度。加密

實現難度:中等。該方案只須要對服務端程序進行修改,不須要修改客戶端。代理

效果:好。能夠有效防止大規模的採集。博客

2、        數據傳輸加密。it

適用:Web網站和移動App。

表明應用:去哪兒網。

思路:對服務端和客戶端(包括瀏覽器)之間的HTTP交互數據採用對稱加密算法(例如,DES)進行保護:

1.        HTTP請求:客戶端 –> 服務端。

HTTP請求明文數據在發送出客戶端以前使用密鑰進行加密,這樣採集者抓包分析只能看到無心義的密文數據,從而沒法本身用程序實現一個有效的HTTP請求。密文數據到達服務端後先用密鑰進行解密,而後再對明文進行處理。以下圖所示。

2.        HTTP應答:服務端 –> 客戶端。

服務端程序在向客戶端發出應答明文數據以前,先使用密鑰對數據進行加密,這樣採集者抓包分析看到的也是密文,從而沒法對HTTP應答數據進行有效的提取。密文數據到客戶端後先用密鑰進行解密,而後再對明文進行展現。以下圖所示。

實現難度:高。該方案須要對服務端和客戶端程序都要進行修改,工做量比較大。

效果:很是好。能夠有杜絕各類採集手段。

也能夠僅對部分敏感數據進行加密保護,例如電話號碼、郵箱、身份證號。其它非敏感數據仍然使用明文。

3、        加入簽名機制。

適用:僅移動App。

表明應用:淘寶手機客戶端。

思路:在HTTP請求中參加一個簽名參數(下簡稱sign),用於在服務端檢測該HTTP請求是否合法。當App程序發出一個HTTP請求時,根據QueryString, Post Entity, User-Agent等相關參數按照必定的算法(使用非對稱加密)生成sign,並將sign於其它參數一塊兒提交給服務端。服務端接收到HTTP請求後使用相同的算法根據QueryString, Post Entity, User-Agent等參數生成校驗sign,若是兩個sign的值相同則認爲這是一個合法的請求(則接收該HTTP請求),反之即認爲這是一個非法的請求(拒絕該請求)。

實現難度:高。該方案須要對服務端和客戶端程序都要進行修改,工做量比較大。

效果:很是好。能夠有杜絕各類採集手段。

特別說明:該文章爲西安鯤之鵬的原創文章 ,你除了能夠發表評論外,還能夠轉載到你的網站或博客,可是請保留源地址,謝謝!!(尊重他人勞動,你我共同努力)

相關文章
相關標籤/搜索