国内外电商平台反爬虫机制报告

标签: WEB安全 反爬虫 | 发表时间:2017-06-22 13:00 | 作者:leopard7777777
出处:http://www.freebuf.com

电商平台的核心引擎大致分为两块,搜索架构和产品布局,应该说各有各的特色。当然今天的主题是反爬虫机制,电商平台如何能保护好自己的数据,又不影响正常用户体验,所谓当今业界一场持久的攻防博弈。

一阶爬虫(技术篇)

应用场景一:静态结果页,无频率限制,无黑名单。

攻:直接采用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里有的

选区_085.png

加解密的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)* 。可能基于贝叶斯或决策树分析【实际怎么算只有开发者知道】

曾经被封过一次, 不是实时性的第二天才被封, 所以应该时 日志离线计算 得出的结果

选区_087.png

攻:chrome插件(可获取https流量),另外把页面中的跳转链接记录到数据库中. 因为一些链接只需要修改日期或ID等参数就可以复用. 链接中的一些铆点可能就是计算用于轨迹的因素. PS:这也是生意参谋一直警告的方式, 所有行为由读者自行负责, 与本文作者无关

选区_086.png

三阶爬虫(反攻篇)

讲道理攻击方为何需要去爬取电商平台的数据,就为一个目的,逆演算出平台的权重计算,推导出各类合理范围内的指标(配合刷单,刷流量)。从技术层面上,永远是一个相互博弈的过程,如果有人下血本采用半人工,堆机器的方式暴力抓取,也是难以防控的。而且众所周知,电商技术的转化含金量非常高,机器和人工的成本就是九牛一毛,如果你的模型与业务模型擦边,辅助上一些内部渠道,无论是作为商家还是服务商都极快的变现

因此,反爬虫的最终核心点是要让攻击者不知道自己已经被判定为爬虫了。那么,攻击者只会悠哉的爬取数据,并兴高采烈的开始演算。而从平台方我们的最终目的是为了保护我们的数据和模型,那么关键点就来了。需要是让攻击方获取得数据不具有代表性,模型不可行即可。配合上流量木桶,定位到攻击者,我们将原始数据进行一些离散加工,加入一些噪音,让攻击方往错误的方向上推导模型。最终攻击方讲无法区分哪些数据是可用,那些又是噪音。

这时候,你会说,如果系统误杀正常用户,给出个一些展示数据错的离谱怎么办。这个度其实很好把握,我们只需要在排名*、成交单数、点击率等此类动态变化的维度加入噪音,不去加工价格、运费、产品详情,即使被程序判定为攻击者,并不影响正常用户的体验

*本文作者:leopard7777777,转载请注明FreeBuf.COM

相关 [国内 电商 平台] 推荐:

国内外电商平台反爬虫机制报告

- - FreeBuf.COM | 关注黑客与极客
电商平台的核心引擎大致分为两块,搜索架构和产品布局,应该说各有各的特色. 当然今天的主题是反爬虫机制,电商平台如何能保护好自己的数据,又不影响正常用户体验,所谓当今业界一场持久的攻防博弈. 应用场景一:静态结果页,无频率限制,无黑名单. 攻:直接采用scrapy爬取. 防:nginx层写lua脚本,将爬虫IP加入黑名单,屏蔽一段时间(不提示时间).

谈电商平台

- - 人月神话的BLOG
一个完整的电商平台模块本身应该如何划分,可以从两个维度来进行思考,一个维度是本身电商的端到端业务和流程角度出发,可以分为哪些大的阶段,每个大阶段可对应为模块;另外一个维度则是从电商业务中的核心主数据和业务单据出发,围绕数据来考虑模块的划分. 电商平台核心模块从基础数据层面包括了产品管理,客户管理,供应商,经销商管理,在产品和供应商管理中可能又会拆分单独的价格库模块,维护产品价格和价格策略信息.

电商平台的底层逻辑

- -
[cp]许多网友想知道电商的底层逻辑,我记得最近刚说过,我再说得详细点吧. 首先,不管你是淘宝京东拼多多,还是微博d音小洪叔,所有的流量都分为两种,免费和付费. 1.越牛的产品越容易获得免费流量,付费推广也越便宜. 2.越差的产品(内容),不但很难获得免费流量,付费推广也越贵. 3.平台靠优质产品(内容)确保用户体验,靠商家付费推广赚钱.

腾讯新电商平台首页曝光:名为“QQ网购”

- diaoxsh - cnBeta.COM
9月20日,来自腾讯内部的消息称,腾讯电商超级平台被命名为“QQ网购”,域名不是此前业内猜测的taotao.com,目前,腾讯选择了二级域名buy.qq.com. 与此同时,腾讯这一新电商平台的首页也流出.

微博应该做什么样的电商平台?

- ehu4ever - SocialBeta
最近两个月来,新浪微博先是推出了企业微博,接着,推出了一个自营的网店,随后又为京东商城开通了微博商城,可谓动作频频. 但所有动作,都有点让人摸不着头脑,不知道它可能的电商方向是什么,预计接下来,新浪还会有不同形式的电商试水行动. 也许,这些都只是在摸着石头过河吧,这倒也没什么可奇怪的. 可问题在于,从目前试水的几个项目来看,真正的模式创新还没有出现.

浅谈个性化推荐(偏电商平台)

- - 神刀安全网
个性化推荐是根据用户的特征和偏好,通过采集、分析和定义其在端上的历史行为,了解用户是什么样的人,行为偏好是什么,分享了什么,产生了那些互动反馈等等,最终理解和得出符合平台规则的用户特征和偏好. 从而向用户推荐感兴趣的信息和商品. 1.2个性化推荐的5个要素. 生产者生产内容到消费平台,消费平台通过一定的规则将内容组织起来,消费者从消费平台使用该内容时的行为,会形成反馈.

一个基于Spring Cloud的微服务电商平台系统

- - 程序猿DD
年之计在于春,新年就要有新的打算,TJ君身边不少小伙伴都有点想在新的一年里开个网店的冲动,但是如何入手、如何开店都是个学问,需要好好研究,不过这也说明了电商行业的前景还是不错滴. 所以当TJ君今天留意到这个开源项目的时候,第一反应就是,可用. 说到mall4cloud,不得不先说下Mall4j. Mall4j是一个商用的提供多元化电商服务,满足企业多场景业务需求,为垂直行业提供专业的电商解决方案网站,提供多种成熟的电商配套服务,而mall4cloud则正是它的 开源版本.

腾讯新电商平台QQ网购10月11日上线运营

- 猫猫逗逗 - 互联网的那点事
腾讯新电商平台QQ网购将于10月11日起正式上线运营. 据悉,目前,QQ网购的域名buy.qq.com已经可以访问,该页面显示,QQ网购将于10月11日上线. 通过,根据腾讯官方的信息,网友订阅QQ网购的优惠信息可以获得5元优惠券,同时,QQ网购开业后除超市商品网全场免运费,亦支持货到付款. 据消息人士披露,除易迅、好乐买及珂兰钻石外,当当、凡客、1号店也可能首批入驻QQ网购.

第二批支付牌照获得者摩宝推移动电商平台

- Hobbes - GeekPark 捕风捉影
国内上市公司卫士通控股子公司成都摩宝宣布推出移动电商平台“Mo立方”,以及超声波手机近场支付“蝙蝠”. Mo立方(molifang.com)是Mo宝网络构建的线上线下相结合的O2O移动电子商务平台,它由用户、商户和平台为构成主体,通过模拟现实生活场景,实现 “线下业务线上化,线上线下一体化,电子商务娱乐化”.

电商火爆致客服急缺 赶集网成领先招聘平台

- - 派代网 - 资讯
 “在网上买了一台面包机,刚制作一次面包就不能用了,决定退掉再换台新的,客服电话打了好长时间,老是坐席忙. ”节前下单,节后才收到货的王女士由于联系不上客服人员非常着急. 同样,国内多家网上商城因为节前订单暴增、节后订单积压导致客服人员紧缺,他们纷纷在国内领先的免费招聘平台赶集网上向应聘者伸出“橄榄枝”.