我就想问,他们难道不知道有个东西叫 http 代理吗?
1
LevineChen 2017-03-20 11:00:57 +08:00 via iPhone
防止中间人攻击和业务逻辑暴露有什么问题么
|
2
lfk0000 2017-03-20 11:01:33 +08:00
我最近安卓机上的淘宝 app 点啥都没反应。。。难道也是这个原因...
|
3
hjc4869 2017-03-20 11:04:09 +08:00
80 端口也不一定要走 http 代理啊。
|
4
helone 2017-03-20 11:04:41 +08:00
如果我没猜错应该是 httpdns
|
5
mhycy 2017-03-20 11:08:58 +08:00
走私有协议有什么不对的么? HTTP 代理和 80 端口有什么关系?
|
6
xialdj 2017-03-20 11:15:04 +08:00 via iPhone 1
80 端口和 http 协议有必然关系吗? 我把 sshd 开在 80 端口 squid 开在 22 端口 楼主你有问题吗 不要抓着个事就搞大新闻
|
8
mooncakejs 2017-03-20 11:25:37 +08:00
网络代理和 80 端口有什么关系, 代理是 应当是软件自己设置的。
哦,是没考虑劫持 80 端口的代理吧。那么,为什么要考虑? |
10
Shura 2017-03-20 11:32:14 +08:00 via Android 1
需求分析时一般只考虑大部分都普通用户的需求。
|
11
hjc4869 2017-03-20 11:33:51 +08:00 1
@choury 需要代理的时候应该在手机上配置而不是在路由器上无脑劫持 80 端口,这种情况下应该应用程序自己实现走 HTTP CONNECT 代理。
另外 Telegram 之类的 app 也有在 80/443 端口上传输非 http/tls 的私有协议。 |
12
mhycy 2017-03-20 11:34:27 +08:00
|
13
choury 2017-03-20 11:38:01 +08:00
|
14
wwqgtxx 2017-03-20 11:52:52 +08:00 via iPhone
我只想说,他们为什么要考虑 http 代理
|
15
nfroot 2017-03-20 11:56:14 +08:00
腾讯 QQ 也是这样的,有啥问题?
|
16
zwh8800 2017-03-20 12:00:12 +08:00 via iPhone
好像和之前某些运营商封禁非 80 端口有关系
|
17
Zzzzzzzzz 2017-03-20 12:26:29 +08:00
LS 正解, 关键词, cmwap 、 uniwap
|
18
RobertYang 2017-03-20 12:30:57 +08:00 via Android
听说淘宝移动端使用的是基于 TLS1.3 的协议
|
19
quicknight 2017-03-20 12:40:18 +08:00
如果是识别到数据被劫持而拒绝服务,我觉得淘宝这样做是对的。
|
20
gamexg 2017-03-20 12:44:24 +08:00 via Android
楼上回答的没人用全局翻墙?
80 跑非 http 就废掉了直接重定向做法,需要用转 socks5 了。 |
21
jych1224 2017-03-20 12:44:41 +08:00
现在 V2EX 也开始有这种如何看待了,要被某乎同化么
|
22
XDA 2017-03-20 12:50:00 +08:00
微信公众平台还强制接口走 80 呢
|
23
iVeego 2017-03-20 12:50:32 +08:00
我问下,有时候用小飞机“绕过大陆和局域网地址”的模式,打开阿里系的软件(淘宝,天猫,支付宝)没有网络连接,关闭小飞机就好了,也是因为这个原因吗?
|
24
iyaozhen 2017-03-20 13:06:58 +08:00 via Android
很正常啊。有时候为了突破一些特殊网络的限制(各种墙), tcp 私有协议经常走 80 、 443 等常用端口。
而且为什么要考虑这种非常极端的用户场景? |
25
simpx 2017-03-20 13:58:36 +08:00
80 端口最保险,为什么不用 80 端口。 zhihu 问题描述的很不友好
利益相关,参与过淘宝 app 网络部分的开发 |
26
Tink 2017-03-20 14:21:26 +08:00
每 get 到喷点。。。
|
28
sobigfish 2017-03-20 15:59:52 +08:00
@simpx #25
淘宝 app 的别跑,让我吐个槽点:有时候弹出的那个评价淘宝的 app 的提醒为啥点了去评价还不消失(所以下次仍会出现---也有点频繁) |
29
qianguozheng OP |
30
simpx 2017-03-20 17:07:25 +08:00
@qianguozheng #29 所以应该怎么做更合适呢?
|
31
qianguozheng OP |
32
qianguozheng OP @lfk0000 你用的啥网络?
|
33
qianguozheng OP @simpx 我觉得吧,简单点,外面包层 http 协议,让数据更通用。
|
34
qianguozheng OP @helone 还有这东西?没玩过
|
35
qianguozheng OP @mhycy 问题是在有 http 代理的环境下, app 无法使用。
|
36
mhycy 2017-03-20 17:11:58 +08:00
@qianguozheng 你这个 HTTP 代理是劫持形式实现还是手机端配置 HTTP 代理实现?
|
37
qianguozheng OP @XDA 我只能说设计傻逼
|
38
qianguozheng OP @mhycy 肯定是劫持啦, squid 作为透明代理, 通过 iptables 的 REDIRECT 功能实现重定向数据报文。
|
39
simpx 2017-03-20 17:22:07 +08:00
@qianguozheng #33
1. 多了额外的 overehead 2. 为了包 http 头,得切分我的二进制流式数据,暂时没想到很好的规则来做这件事 3. 用了 80 端口 不一定是 HTTP 数据,不少防火墙识别里面的具体协议来区分是否应该当 HTTP 连接处理,我参与的时候,有一个版本隐藏掉这些信息,避免被错误识别为 HTTP 了 4. 接上一条,如果有明显的 http 标识,反而可能被有些运营商插广告 |
40
mhycy 2017-03-20 17:24:59 +08:00 1
|
41
weyou 2017-03-20 17:25:42 +08:00 1
@iVeego 不是同一个原因,小飞机是 socks5 代理,代理的是底层的传输层协议。而这个 squid 是 http 代理,是代理的应用层协议。 socks5 代理是不管上层协议的具体内容的,换句话说, app 用任何端口传输的任何内容都会原封不动的转发出去。
|
43
qianguozheng OP @simpx
兼容性嘛,肯定要耗费一些人力物力来解决的。 简单点,直接换成 443 喽, 反正劫持也只能搞 80 端口的 http 数据, https 加密的一般没有运营商会乱搞。 这样你的担忧就全没了,哈哈 |
44
weyou 2017-03-20 17:30:38 +08:00
楼主这个问题真不关 app 的事儿。 80 端口没有谁规定只能传输 http 的 stream 啊。你自己要代理 http ,你就得自己处理好代理之外的各种异常,没有深入用过 squid 透明代理,我不知道它是否有参数能够将不能识别的封包直接透传过去,楼主可以去查一查。
|
45
biaobiaoqi 2017-03-20 17:32:31 +08:00 via iPhone
这口锅,感觉不应该淘宝 app 背。
|
46
simpx 2017-03-20 17:33:25 +08:00
|
47
weyou 2017-03-20 17:33:34 +08:00
@iVeego 阿里系是有全球站点的,你从小飞机出去上淘宝,可能会定向到淘宝的国际站点。不知道是不是这个原因。 反正我的小飞机是分应用代理的,阿里系不在代理的名单里面。
|
49
qianguozheng OP @simpx 那就不对了,你看到我的数据报截图了没, 400 Bad Request, 然后我在淘宝 App 里面点击天猫 直接提示网络不可用之类的,没有你说的降级这个(可能没做好),如果有的话,我多试几次应该就正常了,对吧。
|
50
qianguozheng OP @biaobiaoqi 我这也是希望淘宝 App 越做越好,哈哈
|
51
qianguozheng OP @simpx 要不你把跟淘宝 App 通信的那几个服务器地址告诉我?我把他们加到白名单里
|
52
qianguozheng OP @weyou 还是你回答的靠谱。
端口可以随便用,没错。 我是找过 squid 没有相应的处理方法,所以来这么一问的,这么大的企业应该考虑各种情况,让用户用的舒心,用的方便,因为网络环境本就是复杂的,发现一种问题,就解决这种问题,越做越好嘛。 |
53
simpx 2017-03-20 17:43:00 +08:00
@qianguozheng #51 IP 是 httpdns 获取到的,不一定的。当然,也不会经常变,抓包到就是了
|
54
akira 2017-03-20 17:43:53 +08:00
有些公司会限制 只能访问外网特定端口。。
|
55
maplerecall 2017-03-20 18:13:11 +08:00
@qianguozheng 没毛病,端口本身和协议无关, 80 端口传其它协议业界里挺常见吧,就连 skype 这么大牌国际化的程序也会用 80 端口来保证在一些环境下的通信,虽然也被一些人吐槽,但既然微软都这样做了一定程度上可以说明其做法并不能说是不合理的,甚至说对大多数用户来说是合理的。
所以我觉得这锅还是得劫持者来背…… |
56
qianguozheng OP @simpx 你们那个走 80 端口的是 httpdns 请求阿?
|
57
qianguozheng OP |
58
qianguozheng OP |
59
maplerecall 2017-03-20 19:49:00 +08:00
@qianguozheng 就是为了用户考虑啊,比如有 100 个用户的网络只能通过 80 端口正常通信,而有 10 个用户需要或者会被不正确的劫持 80 端口,两者的需求是冲突的,那只能照顾人数更多的用户……
|
60
qianguozheng OP @maplerecall 这句话说到正点了。
不正确的劫持- 可以不考虑。 但是正常的 http 代理也没有考虑就不太好了吧。 而且人家腾讯的 httpdns 是通过 http 的协议来实现的,如果是这样也没问题啊。现在的问题是它并没以 http 协议的形式封装 httpdns,导致了现在的问题。 |
61
hiboshi 2017-03-20 23:35:10 +08:00 1
我个人觉得走 80 的唯一目的就是防止运营商对端口封锁,很多地区的小运营商针对非 80 , 443 端口进行屏蔽,比如 21 , 22 很多地方长宽、广电都屏蔽了,如果这些还走非 80 的话势必整个 APP 都废了,所以 ali 采用了 80 ,总不至于我网页都不能访问吧,既然用了 80 用了非 HHTP 协议,以 ali 的数据量和 http 报文长度 估计压力什么的很难满足吧!
|
62
mhycy 2017-03-20 23:47:40 +08:00 2
说句不好听的明明是自己技术不过关劫持不做封包分析,为何这口锅要扣在 APP 上面呢?
服务端返回 400 更多的是安全上的迷惑作用, 80 端口按常理是 HTTP 协议应用,但实际上是私有协议。 HTTP 代理做劫持的时候必然需要做双向的封包分析以确定数据流是可处理的。 这点都做不好的话别怪 APP 服务器不支持。 另:劫持形式实现的 HTTP 代理不是正常的 HTTP 代理 |
63
jhdxr 2017-03-20 23:57:59 +08:00 1
1. 用 80 端口(的原因之一)是在部分网络环境下只有 80 端口能用,对, 443 也不行
2. 曾经有过一个串号的故障,经过排查就是某小运营商无视 cookie 针对 get 请求做了缓存, GG 以我个人观点,在被劫持的情况下,提示不可用让用户意识到自己的网络环境可能存在问题也是正当的方案之一。 利益相关:前手淘开发 |
64
firefox12 2017-03-21 00:04:49 +08:00 via iPhone
@qianguozheng http 代理和这个有什么关系, app 客户端又没要求走 http 代理。是你们强行把别人的请求走了 80 代理吧
|
65
cppgohan 2017-03-21 01:20:04 +08:00
个人理解是为了提高连通率, 有些奇葩的网络环境, 防火墙只给过 80 端口的也是有的.
|
66
incompatible 2017-03-21 02:05:43 +08:00
@qianguozheng 哪个业界默认 80 都是 HTTP 协议了?
默认走 HTTP 协议以便你们运营商🐶做劫持? |
67
iyaozhen 2017-03-21 02:19:40 +08:00 via Android
|
68
wavingclear 2017-03-21 04:16:08 +08:00
原来手机支付宝 app 总是掉线是这个原因……
|
69
mengzhuo 2017-03-21 09:52:28 +08:00
没毛病,我国的网络搞得我们做游戏的都得用 80 443
|
70
skylancer 2017-03-21 10:10:42 +08:00
用 80 是主要考虑到了比如移动这种运营商经常玩劫持而考虑的,我搜了下工单劫持基本都是移动,相当醉
另外端口和业务不一定相关的啊... 这个喷点没意思 |
71
skylancer 2017-03-21 10:13:44 +08:00
我搜了下工单,第一页, 42 条记录,从 3 月 12 日到今天
2 条联通劫持记录,剩下的 39 条全是移动 啧啧啧 |
72
hslx111 2017-03-21 10:18:44 +08:00
400 是 squid 无法识别请求返回的吧 这锅真心不是淘宝 app 的
|
73
zpf124 2017-03-21 10:45:45 +08:00
@qianguozheng 巧了,我反倒是喜欢在 80 上代理 3389 端口,因为只有这样我才不会被各种各样的防火墙网关之类的弄掉。
从来没有过任何一个组织制定过标准规定哪些端口是干什么的,都是协议中约定俗成的,并不代表其他产品不能占用这些端口。 |
75
iVeego 2017-03-21 10:59:26 +08:00
@mokeyjay #74 这非常影响体验,不过后来我用曲线救国的方式搞定了。我用了 island 这个软件,一来限制阿里系的后台流氓行为,二来它直接连国内,正好。这是在酷安里面某个评论看到的。用下来体验非常不错。
|
76
RqPS6rhmP3Nyn3Tm 2017-03-21 11:51:43 +08:00
http 默认 80 ,不代表 http 当且仅当 port 80
|
77
JackWindows 2017-03-21 13:32:13 +08:00 via iPhone
估计楼主没听说过 web socket
|
78
qianguozheng OP @JackWindows 我还真听说过,而且用过,搭建过,让你失望了
|
79
qianguozheng OP @mhycy 确实,要是我能解决这个问题,也不会在这里发牢骚了,哈哈。
|
80
mhycy 2017-03-21 14:54:42 +08:00
@qianguozheng
Python 写个代理滤一遍~ |
81
qianguozheng OP @mhycy 设备性能差,没有安装 Python 环境
|
82
mhycy 2017-03-21 15:21:56 +08:00
@qianguozheng 去淘宝搞个 3215
|