随着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请求),反之即认为这是一个非法的请求(拒绝该请求)。
实现难度:高。该方案须要对服务端和客户端程序都要进行修改,工做量比较大。
效果:很是好。能够有杜绝各类采集手段。
特别说明:该文章为西安鲲之鹏的原创文章 ,你除了能够发表评论外,还能够转载到你的网站或博客,可是请保留源地址,谢谢!!(尊重他人劳动,你我共同努力)