當前位置:
首頁 > 新聞 > 國內外電商平台反爬蟲機制報告

國內外電商平台反爬蟲機制報告

電商平台的核心引擎大致分為兩塊,搜索架構和產品布局,應該說各有各的特色。當然今天的主題是反爬蟲機制,電商平台如何能保護好自己的數據,又不影響正常用戶體驗,所謂當今業界一場持久的攻防博弈。


一階爬蟲(技術篇)


應用場景一:靜態結果頁,無頻率限制,無黑名單。

攻:直接採用scrapy爬取


防:nginx層寫lua腳本,將爬蟲IP加入黑名單,屏蔽一段時間(不提示時間)


應用場景二:靜態結果頁,無頻率限制,有黑名單


攻:使用代理(http proxy、VPN),隨機user-agent


防:加大頻率周期,每小時或每天超過一定次數屏蔽IP一段時間(不提示時間)


應用場景三:靜態結果頁,有頻率限制,有黑名單


攻:使用代理,隨機1-3秒爬取,爬10秒休息10秒,甚至範圍時間爬取,增加機器


防:當5分鐘內請求超過60次,彈出驗證碼頁面,通過驗證增加5分鐘無限制時間,不通過驗證碼則屏蔽增加一小時 (時間自擬)


應用場景四(Amazon):靜態結果頁,有頻率限制,有黑名單,有驗證碼


攻:python+tesseract驗證碼識別庫模擬訓練,或基於tor、crawlera(收費)的中間件(廣度遍歷IP)

防:前端非同步載入js,動態加密token


應用場景五(Aliexpress):動態結果頁,有頻率限制,有黑名單,有驗證碼


攻:python+Selenium,利用chrome內核載入動態結果頁,更推薦用node+hex+ie內核做一個爬取客戶端。java程序可以參考《簡單破解Java瀏覽器組件jxbrowser》


防:見二階爬蟲


一階爬蟲屬於單純的技術性博弈,下面開始真正的人機交互博弈


二階爬蟲(進階篇)


應用場景六(PC天貓搜索頁):https,動態結果頁,有頻率限制,無黑名單,有驗證碼


防:基於個性化為主導,提倡用戶主動登陸來獲取更優質的用戶體驗。根據購買習慣為用戶推薦一些正常促銷的商品,如9.9洗髮露、沐浴露、茶葉等(威露士經常做),以及一些優質的鑽展商品。不但能區別人機,還能搜集用戶訪問喜好,針對性優化個性化大數據,還可以抵禦ddos,可謂一舉三得


攻:搜集刷單賬號,用分布式任務


應用場景七(生意參謀):https,React單頁面應用,有驗證碼,LocalStorage,機器學習中間件

防:生意參謀本身是收費類的官方服務,從內測http過渡到https,而且近期加大對採集行為的打擊,直接採取封號警告策略。以增加用戶採集成本為限制,約束攻擊方收斂性為。


單頁面應用訪問是遵循一定正常軌跡的。例如請求:


1. 用戶信息獲取


2. 數據列表1


3. 數據列表2


4. 數據詳情1



針對數據可視化應用,大部分數據是經計算分析得到,並不會經常改變(甚至不變)。

那麼,數據結果存儲入LocalStroage中,不但節省了網路請求加快頁面速度(相當於緩存),還能區分用戶行為軌跡


詳細的來說,通過程序編程得到的爬蟲,無論是基於url request,還是基於解壓webkit(如:jxbrower)。所生成的爬蟲對象都是臨時對象,那麼不會存儲LocalStroage數據,因此導致,訪問數據頁的請求軌跡每次都會是

1. 用戶信息獲取


2. 數據列表1(實際應被存儲到LocalStroage)


3. 數據列表2(實際應被存儲到LocalStroage)


4. 數據詳情1



而正常用戶行為(一直通過瀏覽器訪問重複頁面)


1. 用戶信息獲取


2. 數據詳情1


… 總之,不會請求LocalStorage里有的


加解密的JS代碼

setItem: function(e, t) {

return void 0 === t ? this.removeItem(e) : (localStorage.setItem(e, this._serialize(t)),

t)

},

getItem: function(e) {

return this.deserialize(localStorage.getItem(e))

},

另外,單頁面應用是非同步載入數據,一個頁面種有ABC三類,只有A類需要驗證碼時用dialog占屏,BC類數據正常顯示,爬蟲開發時必然考慮不到這些情況,驗證碼並非強制要求輸入(刷新後照常訪問)


還可以分析每天用戶請求數,訪問習慣等等


分析用戶行為軌跡的方式大致有3種:nginx流量中間件,web controller層攔截器,日誌收集(flume + hadoop + sperk)* 。可能基於貝葉斯或決策樹分析【實際怎麼算只有開發者知道】


曾經被封過一次, 不是實時性的第二天才被封, 所以應該時

日誌離線計算

得出的結果




攻:chrome插件(可獲取https流量),另外把頁面中的跳轉鏈接記錄到資料庫中. 因為一些鏈接只需要修改日期或ID等參數就可以復用. 鏈接中的一些鉚點可能就是計算用於軌跡的因素.

PS:這也是生意參謀一直警告的方式, 所有行為由讀者自行負責, 與本文作者無關



三階爬蟲(反攻篇)


講道理攻擊方為何需要去爬取電商平台的數據,就為一個目的,逆演算出平台的權重計算,推導出各類合理範圍內的指標(配合刷單,刷流量)。從技術層面上,永遠是一個相互博弈的過程,如果有人下血本採用半人工,堆機器的方式暴力抓取,也是難以防控的。而且眾所周知,電商技術的轉化含金量非常高,機器和人工的成本就是九牛一毛,如果你的模型與業務模型擦邊,輔助上一些內部渠道,無論是作為商家還是服務商都極快的變現


因此,反爬蟲的最終核心點是要讓攻擊者不知道自己已經被判定為爬蟲了。那麼,攻擊者只會悠哉的爬取數據,並興高采烈的開始演算。而從平台方我們的最終目的是為了保護我們的數據和模型,那麼關鍵點就來了。需要是讓攻擊方獲取得數據不具有代表性,模型不可行即可。配合上流量木桶,定位到攻擊者,我們將原始數據進行一些離散加工,加入一些噪音,讓攻擊方往錯誤的方向上推導模型。最終攻擊方講無法區分哪些數據是可用,那些又是噪音。


這時候,你會說,如果系統誤殺正常用戶,給出個一些展示數據錯的離譜怎麼辦。這個度其實很好把握,我們只需要在排名*、成交單數、點擊率等此類動態變化的維度加入噪音,不去加工價格、運費、產品詳情,即使被程序判定為攻擊者,並不影響正常用戶的體驗


*本文作者:leopard7777777,轉載請註明FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

盤點21世紀以來最臭名昭著的15起數據安全事件
Kali Linux中優秀Wifi滲透工具TOP 10
全美最大選民數據泄露:共和黨所屬數據公司意外泄漏近2億美國選民個人資料

TAG:FreeBuf |

您可能感興趣

《絕地求生》反外掛機制改進 線下聯合警方嚴打外掛商
育碧公布《全境封鎖2》氪金機制 將引進外觀物品商店
《人渣》反外掛機制啟動 《戰地5》公測版已於PS4港服上線
商務部:「絲路電商」合作不斷深化,中國已與9個國家新建電子商務合作機制
美國紐約州推出針對挖礦用電的新型計價機制
只調整UI遊戲機制不變《黎明殺機》年內登陸手機平台
《絕地求生》更新反外掛檢測機制
上海高院發布《典型案例》完善涉外審判工作機制 服務保障「一帶一路」建設
從《娛樂至死》說各平台內容推薦機制
美國推行三大國際機制的成敗:啟示和警示
主角靜音遊戲《寂靜之人》公布新視頻 機制類似《如龍》
爐石傳說:「戲精」設計師野外探險暗藏玄機,新卡牌機制初露端倪
國家監測中心牽手美圖共治合作,建立跨境商品風險監控機制
俄羅斯外長:金磚國家機制國際影響力與日俱增
潮州市建立環境保護案件通報聯查工作機制
新媒:印度拉攏東盟遏制中國 設南海海事合作機制
中日同意加快建立海空聯絡機制直通電話
杜穎:構建市場主導的中國商標品牌評價機制
香港與日本設立消費信息及投訴互通機制
韓國訴諸WTO機制 應對美國徵收洗衣機及太陽能板關稅