
如题,始终不明白,12306 一个劲防黄牛,防抢票软件,但订票的接口为啥一直对外开放呢,这么多抢票软件,不都是直接封装官网的接口进行刷票吗? 12306 是是睁一只眼闭一只眼呢,还是说这玩意儿压根就防不了,高手在民间? 不是接口还是可以鉴权的吗?
1 maemual 2018-04-04 16:50:49 +08:00 前端接口? js 写的东西怎么搞都会被人破解啊。 |
3 Sharuru 2018-04-04 16:54:42 +08:00 接口在哪? :doge: |
5 Muniesa 2018-04-04 16:56:30 +08:00 个人觉得这种东西真的想禁的话发个通知各个软件就得改 |
7 1195726908 2018-04-04 16:57:26 +08:00 via iPhone 谁告诉你 12306 开放接口了?都是自己抓取 12306 的各种数据获取请求然后封装一遍,官方怎么可能提供接口了…… |
8 thedog 2018-04-04 16:58:24 +08:00 via Android 我一直以为抢票软件和 12306 是有 py 交易的… |
12 jadec0der 2018-04-04 17:06:55 +08:00 真没有后台接口,都是模拟浏览器,只不过大厂的技术比较好,插件的技术一般而已 |
13 SourceMan 2018-04-04 17:07:34 +08:00 "爬虫"了解一下 |
14 SourceMan 018-04-04 17:07:48 +08:00 “模拟登录”了解下 |
15 pyse OP @1195726908 前端调的最终,还不是后台的接口? |
17 pyse OP @jadec0der 我一直觉得前端请求的 http 协议,不就请求到后台去了吗,这本质不就还是调了后台接口?还是说我理解不对? |
18 fe619742721 2018-04-04 17:11:06 +08:00 @pyse 你后端不这么整,前端咋调用?这玩意不叫开放接口, |
20 pyse OP @fe619742721 那这应该叫啥,网站不都是种形式吗 |
21 b821025551b 2018-04-04 17:11:50 +08:00 题主的知识是不是只停留在理论上,没做过项目。 |
22 fe619742721 2018-04-04 17:12:24 +08:00 @pyse 这不叫啥,你说的那些软件叫爬虫和模拟登陆 |
23 pyse OP @b821025551b 哈哈,小白一枚啊,一个 http 请求到接口去,这种应该叫什么?跟真正调用后台接口有啥区别 |
24 shower 2018-04-04 17:15:05 +08:00 你可以讲一下按照你的理解,12306 应该怎么做才算“不开放接口”呢? |
25 wekw 2018-04-04 17:15:07 +08:00 技术限制了你的想象力。 大厂也是抓网页的。 |
26 scarletmu 2018-04-04 17:15:15 +08:00 @pyse 你正常使用肯定是你的客户端 /网页来请求这些接口啊,有自己的鉴权规则,你说的这种就是抓包分析这整个流程来实现模拟这样的请求过程,并不是 12306 主动开放的 |
27 chinvo 2018-04-04 17:17:52 +08:00 @pyse #23 楼主你魔障了 这些接口是暴漏给网站前端使用的,所以前面的各位称之为“前端接口” 与之相对的,“后台接口”指暴漏给 headless 的部分使用的接口,通过 apikey 和 IP 白名单之类的东西限制调用,也就是你想要怒喷的东西 但是 12306 只是被抓包解析出了“后台接口”,然后抢票软件假装自己是个浏览器去调用的 |
28 Delete 2018-04-04 17:18:01 +08:00 开放接口和爬虫不一样的 开放接口,是给第三方应用调用接口的权限。 而爬虫,是模拟真实用户操作的。 就像一个正常用户与网站交互,不通过 HTTP 你以为通过什么?? 你要防爬虫?那真实用户也可能无法正常使用了。 |
31 b821025551b 2018-04-04 17:28:49 +08:00 这种东西,你可以理解为那些抢票软件把自己伪装成一个浏览器,把用户所有的操作模拟再自动化一下,每次刷票和用户手动刷票基本没区别。鉴权?不存在的。只要能给用户使用,就能被模拟,只是模拟的难度不同罢了。 |
32 ypw 2018-04-04 17:31:13 +08:00 浏览器能做的事,程序都能做,没有模拟不了的接口。 你能在浏览器里面登录,查询,买票,那如果浏览器是我写的呢?我难道不能控制你的行为,让你以每秒 100 次的速度买票吗? 12306 怎么防? |
33 chinvo 2018-04-04 17:32:30 +08:00 |
34 pyse OP @b821025551b 为什么不能搞成只有在官网才能调用他的协议接口?其他地方调就提示 401 之类的?哈哈,我也不懂,小白 |
35 chinvo 2018-04-04 17:35:12 +08:00 识别非人类使用者(爬虫 /机器人)是一门很深的学问 全球这么多专门研究这个的公司,也没有一家能 100% 屏蔽非人类使用者的 你十分反感的那个 12306 登陆界面和购票界面的九宫格图片就是做这个的,但是如你所见,效果十分不理想 而且抢票软件还可以通过直接展示这个东西给真人用户的方式来让用户去完成验证 |
36 HsingChih 2018-04-04 17:35:27 +08:00 via Android 12306 的反爬措施一直在更新的 |
37 rb6221 2018-04-04 17:36:27 +08:00 菜农把菜批发给小贩 小贩再卖给消费者。 有一天菜农们统一口径,只准批发给 A 农贸市场的,其他人不卖。 然而有人不是 A 市场的,为了搞到菜,假装 A 市场的人去进货。 典型区别就是: 1. 菜农本身是不希望开放给 A 市场之外的 2. 菜农没法鉴别小贩是不是 A 市场的 3. 只要某个人设法让菜农相信他是 A 市场的,那他就可以拿到菜。 |
38 chinvo 2018-04-04 17:37:30 +08:00 @pyse #34 我认为你没有认真阅读 @b821025551b #31 的解答 你可以用浏览器访问,脚本就同样可以通过浏览器访问 人为增加脚本进行操作难度的方法即我在 #35 提出的 识别非人类使用者(全自动区分计算机和人类的公开图灵测试,CAPTCHA ) |
41 CloudnuY 2018-04-04 18:56:23 +08:00 这些抢票软件就是在模拟人的操作 |
42 icy37785 2018-04-04 19:23:11 +08:00 楼主给我的感觉就是发现家里门被撬开了,然后很愤怒,防盗门厂为什么明明做了锁,却还是要跟小偷有 py 交易,让小偷可以打开我家的锁。 底下的全部在回复,防盗门厂跟小偷没有 py 交易,是小偷自己撬开的。 楼主很疑惑,防盗门明明应该只有主人可以打开,小偷打开了锁,肯定是 py 交易,没有 py 交易小偷怎么可以打开锁的。 底下的都在解释原理,小偷是通过技术手段撬开了锁。 楼主更疑惑了,为什么防盗门厂不把锁做得只有用这钥匙才能开,而要做得用别的东西也能撬开。 前面的流程都走完了,我感觉下面的话题应该进展到,跟楼主说,防盗门厂家也希望只有钥匙可以打开锁,别的东西撬不开,但是做不到啊。除非不做钥匙孔,甚至不做钥匙孔都有可能用其他方式把门撬开,所以最安全的是焊死。 12306 也想只有在官网可以登陆,别的地方访问不了接口呀,但是做不到啊,除非不让人访问。甚至不让人访问都有可能用其他的方式访问到接口,所以最保险的是服务器断网。 |
44 iyaozhen 2018-04-04 20:31:42 +08:00 via Android 这叫接口,不叫开放接口 |
46 sola97 2018-04-04 22:44:19 +08:00 那得把网站停了,然后 App 加壳混淆协议加密,提高模拟难度 |
47 wxlpure 2018-04-04 23:00:04 +08:00 前台调用后台的接口,当然有验证机制。最简单的例子,登陆后你会获取一个 token,之后你的请求头中就会带上 token,后台接收到请求时就会验证 token 是否是有效的。 |
48 cxbig 2018-04-04 23:01:24 +08:00 不是听说黄牛都是直接包车厢再分销么。。。根本拦不住。 |
49 msg7086 2018-04-05 01:30:11 +08:00 最差的,我开个脚本,让脚本在浏览器里填资料点按钮,你怎么防护? |
50 zgx030030 2018-04-05 02:36:07 +08:00 via iPhone 页面上 form 表单的 action 也叫做接口了吗。。。 |
51 xiqingongzi 2018-04-05 07:49:12 +08:00 via iPhone csrf 了解一下 |
52 karottc 2018-04-05 08:10:31 +08:00 via Android 第一次不防,不就挂了嘛 |
53 xiaket 2018-04-05 09:05:43 +08:00 菜得让人心疼... |
54 hlwjia PRO 我其实觉得楼主还是没懂 |
55 mazyi PRO 心疼楼主 5 秒,然后表示,多看书啊 |
56 CYKun 2018-04-05 10:41:34 +08:00 via Android 菜的让人心疼。。 |
57 snw 2018-04-05 10:54:10 +08:00 via Android 12306 不是有官方自带刷票、自动购票功能吗?我看到那些抢票网站也就官方那些功能而已,无非帮你挂机。 |
58 DeWhite 2018-04-05 20:58:20 +08:00 via Android 黄牛都是直接卡票,一键推取。很恶心 |
59 reus 2018-04-05 23:11:21 +08:00 via Android 懂的太少,想得太多 |
61 Senorsen 2018-04-06 18:41:57 +08:00 via Android 不好意思,不过我还是想说,楼主知识太少却想的太多,前后端 /HTTP API 还没搞明白就在想更复杂的问题了 |