五一调休,你回家的机票可能都被爬虫抢完了......

意识上传者
• 阅读 525

来投个票吧

问题一:五一你会出去玩吗?
A.不会
B.会

问题二:五一出行方式?
A.自驾
B.高铁
C.飞机

问题三:高铁或飞机的话,你抢到票了吗?
A.是
B.否

关了三年的大学生们成为了城市穿梭“特种兵”,景区充斥着各种中老年团,更不用说我在西湖边掉的,但是在灵隐寺找到的鞋子了......今年五一,已经是可以预见的火爆了。

但是,火爆的旅游不仅让有旅游业蒸蒸日上,也让黄牛们赚到“盆满钵满”。高铁票且不说,机票的抢票难度已经高到天际。这里面,就涉及到非法代理人操控的恶意“爬虫”。

恶意爬虫如何影响我们抢机票

“爬虫”的定义我们就不再赘述了。Python还是牛的。

而所谓恶意“爬虫”,就是部分航空服务代理人通过“爬虫”非法抓取航空公司B2C网站或官方App等平台上的机票信息,然后非法倒卖给他人以牟取利益。

部分代理人利用“爬虫”爬取下票务信息后,再利用虚假的身份信息预订机票,但不付款。在航空公司允许的订票账期内,转售给真正需要购票的用户。这就导致部分机票并未售出,但是用户在航空公司查看时却显示已售罄。该行为称之为“虚假占座”。

举个例子。

五一调休,你回家的机票可能都被爬虫抢完了......

以上面机票为例,如果我能在官网原价买的话,应该是1390(经济舱),但是票贩子通过恶意爬虫,把票务信息扒拉出来,预订机票但不付款,这就会导致官网显示“票已售罄”,真正需要的人无法购票,只能通过他们去买了,而这个时候,票价可能是3000多。票贩子就通过这样的方式赚“差价”。
五一调休,你回家的机票可能都被爬虫抢完了......

恶意爬虫的危害自不必说,一是对航空公司而言,浪费了航空公司带宽资源,白白消耗航空查询费用,也扰乱航空公司的正常运营;二是,而“虚假占座”不仅给航空公司和用户带来经济损失,也损害了用户的合法权益。更关键的是:由此带来订票量的波动导致航空公司收益管理系统算法产生误判,给出不符合实际情况的运价调整,损伤了用户权益以及平台的口碑。这里面,受益者只有票贩子。

这种现象在五一节、国庆节这种大型节假日尤为突出。通过反欺诈中心监测发现,在国务院颁布五一劳动节假期安排后的72小时里内,多家航空公司网站的“爬虫”流量暴增。其中,虚假查票占总查询总量的36%以上,部分航空公司的虚假查票数字甚至高达99%。

航空公司可以如何“反爬”

“反爬”之前,我们需要先识别这种爬虫的特征:

恶意爬虫的特征

1、访问的目标网页比较集中:“爬虫”代理人目标明确,主要是爬取班次、价格、数量等核心信息,因此只浏览访问几个固定页面,不访问其他页面。

2、查询订票等行为很有规律:由于“爬虫”是程序化操作,按照预先设定的流程进行访问等,因此呈现出毫无思维、但很有规律、有节奏且持续的行为。

3、同一设备上有规模化的访问和操作:“爬虫”的目的是最短时间内抓取最多信息,因此同一设备会有大量离散的行为,包括访问、浏览、查询等。

4、访问来源IP地址异常:正常情况下用户在查询、购买时,用户的IP地址比较稳定,而且访问来源IP比较;“爬虫”、“虚假占座”等操作时,IP来源地址呈现不同维度上的聚集,而且浏览、查询、购票等操作时不停变化IP地址。

5、设置UA模拟浏览器和频繁使用代理IP:很多“爬虫”程序伪装成浏览器进行访问,比如在程序头或者UA中默认含有类似python-requests/2.18.4等固定字符串;并且通过购买或者租用的云服务、改造路由器、租用IP代理、频繁变更代理IP等进行访问。

6、操作多集中非业务时间段:“爬虫”程序运行时间多集中在无人值守阶段。此时系统监控会放松,而且平台的带宽等资源占用少,爬虫密集的批量爬取不会对带宽、接口造成影响。以下是顶象反欺诈中心监测到,凌晨1-5点是恶意“爬虫”的运行高峰时段。

航空公司的常见手段

恶意爬虫对于航空公司来说,其实很早就发现了,但也一直没什么好方法去检测和防范。一般来说,就是通过IP和验证码进行限制,但是这两类手段有非常大的局限性。

通过IP地址进行限制:当同一IP、同一电脑在一定时间内访问网站的次数,系统自动限制其访问浏览等。但是,封禁IP的手段可能误伤真实用户,而且“爬虫”幕后的运营者随时可用购买或者租用的云服务、改造路由器、租用IP代理、频繁变更代理IP等方法绕过封禁的规则。

通过验证码进行限制:当某一用户访问次数过多后,就自动让请求跳转到一个验证码页面,只有在输入正确的验证码之后才能继续访问网站。但是设置复杂的验证码会影响用户操作,给客户体验带来负面作用。

全链路防控可能更有效

传统的手段或措施无法对恶意“爬虫”进行辨别,这就需要一套从客户端到业务端的全链路防控体系。顶象反爬解决方案基于设备指纹对实现对各类风险和模拟器、真机的识别,以及Dinsight风险决策引擎毫秒级实时决策对行为分析(鼠标的滑动轨迹、键盘的敲击速率、滑动验证码的滑动轨迹、速率、按钮点击等行为轨迹等),实现对恶意“爬虫”行为的有效识别;通过智能无感验证的人机交互防护,直接拦截“爬虫”对敏感数据的爬取;利用Xintell智能模型平台建立基于业务场景的策略模型,从而对反爬效果进行实时优化,良好防范恶意爬取的风险。

顶象数据反爬解决方案依据多年攻防对抗实战经验,提供了动态策略的精准防护;全链路纵深防护,避免“爬虫”的单点绕过;多维度防御,有效拦截各种恶意“爬虫”行为;无感的人机交互验证,有效反爬又不影响正常用户体验。 

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
springMVC
1.命令控制器            a.创建一个自定义的命令控制器,继承一个父类AbstractCommandController            b.在控制器中通过构造方法指定命令类,由框架负责包装实体对象package cn.internet.controller;import java.
Bahar76 Bahar76
4年前
用 Go 写个日志监控系统
日志收集系统架构1.项目背景a.每个系统都有日志,当系统出现问题时,需要通过日志解决问题b.当系统机器比较少时,登陆到服务器上查看即可满足c.当系统机器规模巨大,登陆到机器上查看几乎不现实2.解决方案
Stella981 Stella981
3年前
Spring Boot 整合 Spring Cache + Redis
1.安装redis  a.由于官方是没有Windows版的,所以我们需要下载微软开发的redis,网址:https://github.com/MicrosoftArchive/redis/releases  b.解压后,在redis根目录打开cmd界面,输入:redisserver.exeredis.windows.conf,启动redis(关闭
Wesley13 Wesley13
3年前
12306 的架构到底有多牛逼?
链接|绘你一世倾城来源|https://urlify.cn/ZBRBRv每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!12306抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家
Wesley13 Wesley13
3年前
12306 的架构也太 牛X 了吧!
作者:绘你一世倾城juejin.im/post/5d84e21f6fb9a06ac8248149每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿
Stella981 Stella981
3年前
Linux三阶段之四:实时同步(inotify+rsync,sersync+rsync)
四、实时同步(一)课程概念介绍1.为什么要用实时同步服务因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失2.实时同步工作原理a.创建要存储数据的目录b.利用实时同步的软件监控我们进行备份的数据目录c.利用rsync服务进行数据
可莉 可莉
3年前
12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
郑重声明:本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作!开篇明义本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了12306网站的前端加密算法,更准确的说,是探究RAIL_DEVICEID的生成过程.因为该cookie值是抢票请求
Wesley13 Wesley13
3年前
Java反射技术概述
1.什么是Java反射?  就是正在运行,动态获取这个类的所有信息2.反射机制的作用  a.反编译:.class.java  b.通过反射机制,访问Java对象的属性,方法,构造方法等3.反射机制的应用场景  Jdbc加载驱动  SpringIOC实现  Java框架4.创建对象的两种方式  a.直
Stella981 Stella981
3年前
12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
郑重声明:本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作!开篇明义本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了12306网站的前端加密算法,更准确的说,是探究RAIL_DEVICEID的生成过程.因为该cookie值是抢票请求
Wesley13 Wesley13
3年前
2020.8.07 微信小程序(组件封装)
今天说一下微信小程序组件的封装…为什么要封装组件?写组件的目的就是为了复用,它的好处太多了a.写更少的代码。b.减少开发时间。c.代码的bug更少。d.占用的字节更少。…组件复用使我们的代码组织变得非常灵活。那么组件到底怎么封装,其实就和vue组件封装的思
Wesley13 Wesley13
3年前
B.博客设计中的问题
Q.创建springBoot项目问题1.访问https(http)://start.spring.io均拒绝访问或者连接超时1.设置proxy代理访问也是如此2.关闭防火墙也是如此3.单位网络是可以的,则家里网络有问题(头疼,居然出现这样的尴尬)2.不能加载jdbc驱动现象:启动报错