國內外電商平台反爬蟲機制報告
電商平台的核心引擎大致分為兩塊,搜索架構和產品布局,應該說各有各的特色。當然今天的主題是反爬蟲機制,電商平台如何能保護好自己的數據,又不影響正常用戶體驗,所謂當今業界一場持久的攻防博弈。
一階爬蟲(技術篇)
應用場景一:靜態結果頁,無頻率限制,無黑名單。
攻:直接採用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
※盤點21世紀以來最臭名昭著的15起數據安全事件
※Kali Linux中優秀Wifi滲透工具TOP 10
※全美最大選民數據泄露:共和黨所屬數據公司意外泄漏近2億美國選民個人資料
TAG:FreeBuf |
※《絕地求生》反外掛機制改進 線下聯合警方嚴打外掛商
※育碧公布《全境封鎖2》氪金機制 將引進外觀物品商店
※《人渣》反外掛機制啟動 《戰地5》公測版已於PS4港服上線
※商務部:「絲路電商」合作不斷深化,中國已與9個國家新建電子商務合作機制
※美國紐約州推出針對挖礦用電的新型計價機制
※只調整UI遊戲機制不變《黎明殺機》年內登陸手機平台
※《絕地求生》更新反外掛檢測機制
※上海高院發布《典型案例》完善涉外審判工作機制 服務保障「一帶一路」建設
※從《娛樂至死》說各平台內容推薦機制
※美國推行三大國際機制的成敗:啟示和警示
※主角靜音遊戲《寂靜之人》公布新視頻 機制類似《如龍》
※爐石傳說:「戲精」設計師野外探險暗藏玄機,新卡牌機制初露端倪
※國家監測中心牽手美圖共治合作,建立跨境商品風險監控機制
※俄羅斯外長:金磚國家機制國際影響力與日俱增
※潮州市建立環境保護案件通報聯查工作機制
※新媒:印度拉攏東盟遏制中國 設南海海事合作機制
※中日同意加快建立海空聯絡機制直通電話
※杜穎:構建市場主導的中國商標品牌評價機制
※香港與日本設立消費信息及投訴互通機制
※韓國訴諸WTO機制 應對美國徵收洗衣機及太陽能板關稅