原理
就是利用浏览器已存的Cookie去call UA的API,得到想要的信息
举个
今天是1月24日,你有一班1月29日从DEN - EWR的航班,由787执飞,你很想知道自己能不能躺平,所以你来到UA的官网,发现最远只能看26号的同一班飞机
这个时候你先打开了这一班飞机的flight status
你有点懊恼,想看一下这一班有多少人在排队,所以你点击了这一天的upgrade list, 网站带着你来到了1月26号这班飞机的upgrade list
“卧槽”,你发出了这一声感叹,居然有52个人在排,你顿时感觉凉了。
很失望,但是你很想知道自己到底在什么位置,这个时候你突然想起了大学曾经上过的
于是你打开了Developer Tools(Chrome F12,其余请Google),轻击了F5,重新载入了这个页面,这个时候你发现一个有一个开头为upgradeListExtended的API endpoint,并且query param就是1月26号这班飞机,于是心里一喜,觉得有戏
这个时候你自信的打开了Postman,复制黏贴了这个Request URL并且把param里的时间替换成了1月29号
“报错了,擦”,看了一下错误,Google了一下,发现是没有填header,于是你回到了Chrome,找到了那个request URL,并且找到了对应的对应的request header填了进去
“嗯?Token!”,你在header里面折腾了半天,终于找到了一个bearer开头的auth token,把header和token都复制了进去
“卧槽成功了,UA的码工果然是菜鸡”,你不禁发出了这样的感叹。然后你把这个完整的json response复制到了vscode,利用你安装好了的json插件看到了
“MD,居然有62个人在排队”,气的你当时就把电脑砸了。
全文终
觉得写的还不错的朋友可以点个赞!
下面发一下这个upgrade list array里面的object结构,不过多做解释了。
UA职工请看这里
这样其实能看到一些隐私信息,希望大家不要利用这些去做坏事。
如果有UA的职工在这里,也希望可以去报一个feedback,叫码工把privacy的信息隐去。
{
"standbyCabin": "Front",
"currentCabin": "Rear",
"bookedCabin": "Rear",
"checkinId": 0,
"isCheckedIn": false,
"classOfService": "",
"originalClassOfService": "",
"origin": "DEN",
"destination": "EWR",
"firstName": "S",
"lastName": "TUR",
"passengerName": "S/TUR",
"numberInParties": 2,
"premierLevel": "",
"evaluatedRank": "",
"seatNumber": "108Z", //我改了一下,实际上是可以看到真实的座位的
"skipped": false,
"skippedReason": "None",
"upgradeClassOfService": "PZ",
"upgradeType": "",
"clearanceType": "Upgrade",
"cabinClearanceTime": "0001-01-01T00:00:00",
"canBeClearedIntoCabin": true,
"canBeClearedIntoCabinStartingAt": "2022-02-26T13:30:00Z"
//大家可以根据这个时间来判断有多少人会eligible to be cleared
//如果数字大于available seats,那就GG。
},