直到现在,居然仍有不少人(甚至包括做 Web 开发以及安全的),以为只有涉及隐私的网页用 HTTPS 才有意义。随便浏览一个从搜索引擎里点出来的 HTTP 垃圾站对自己并没什么影响。。。
殊不知,只要允许了三方 Cookie (各大浏览器默认允许),访问任何一个 HTTP 网页,各大网站的 cookie 都会瞬间泄露。。。(原理很简单,大家可以想想为什么)
而且国内大部分网站隐私 Cookie 都没加 secure,也极少有网站同时开启 HSTS+includeSubDomains,导致用户 cookie 大片大片的泄露。
真正了解这个风险并禁用三方 Cookie 的寥寥无几,最悲催的是不少国内大网站都依赖这个,禁用后正常功能都会受影响。。。
1
famez 2018-09-26 11:38:28 +08:00
赞一个
|
2
est 2018-09-26 11:45:53 +08:00
> 访问任何一个 HTTP 网页,各大网站的 cookie 都会瞬间泄露。。。(原理很简单,大家可以想想为什么)
怎么个泄露法?中间人? |
3
Pastsong 2018-09-26 11:48:38 +08:00
国外网站也依赖第三方 cookies,比如使用 Google 账号登录第三方网站
|
4
wxsm 2018-09-26 11:49:07 +08:00 1
#2 同问。建议你来点干货,让我们开开眼,怎么个瞬间泄露法。
|
5
Ultraman 2018-09-26 11:49:25 +08:00 via Android
除去做技术的 大概知道 cookie 这么个名词的都没多少 更别期待这部分人群对 cookie 和隐私的关系有什么认识了(另外对于隐私停留在不能让其他人知道自己银行卡密码微信密码的也见过不少)
|
6
honeycomb 2018-09-26 11:50:29 +08:00 via Android
|
7
hpeng 2018-09-26 11:50:59 +08:00 via iPhone
等一个简单的原理。
|
8
imdong 2018-09-26 11:53:41 +08:00
大概是这样的吧。
比如 你访问 http://www.a.com 被劫持插入了 http://www.b.com/a.js 然后就能获取到 www.b.com 相关的 cookies 了??? 运营商有能力做到在 www.a.com 插入 任意代码,也有能力劫持 www.b.com 的解析甚至直接中间人读取了。 |
9
affyun 2018-09-26 11:53:52 +08:00 via Android
自从早年买了电脑开始,用 IE 时就不允许第三方 cookies
|
10
airyland 2018-09-26 11:54:35 +08:00
等一个简单的原理 +1
|
11
iwtbauh 2018-09-26 12:10:03 +08:00 via Android 2
|
13
est 2018-09-26 12:13:34 +08:00
|
14
iwtbauh 2018-09-26 12:16:53 +08:00 via Android
@est
中间人啊,本来应该只在安全连接中传输的 cookie 使用明文在网络上传输了。 再扩展一下,中间人在你的任何 http 流量中插入 alipay.com 的 http 资源引用,如果 alipay 没有设置 secure 或者 hsts,你的 alipay 就会可能会被盗刷 |
15
DCjanus 2018-09-26 12:20:36 +08:00 via Android
@est 可是之前抓了一批盗新浪微博用户 cookies 刷赞刷关注的,他们就是跟运营商合作拿到的数据。
|
16
xxgirl2 2018-09-26 12:24:23 +08:00
我不懂网站开发,却一直比较好奇绅士站的 cookies 原理是怎样的(掩面
|
17
est 2018-09-26 12:26:43 +08:00 2
|
18
imdong 2018-09-26 12:27:05 +08:00
@est #12 这事运营商还真没少干,而且从你端到服务器端中的任意一个部分,都有可能被中间人劫持。
不只是运营商,所谓的黑客是可以很容易做到侦听你的数据包的。 当然,当下的劫持数据包泄漏绝大多数都是运营商自己干的。 |
19
iwtbauh 2018-09-26 12:27:47 +08:00 via Android
对了,这个选项在我的 Debian stable 的 chromium 上是默认开启的。
我一开始还纳闷为什么访问什么网站都提示 cookie 已拦截 XD |
20
des 2018-09-26 12:29:35 +08:00 via Android
都是禁用第三方 cookie 的,也能避免一些广告追踪
|
21
iwtbauh 2018-09-26 12:30:40 +08:00 via Android
@est
问题来了,不依赖 TLS 的漏洞,中间人如何劫持你的 https 连接。 这个问题关键在于,https 标记暗示用户连接是比较安全的,用户登录 https 网站认为自己的数据不会以很低级的方法泄露,但是这个问题仅仅是因为网站开发者的疏忽导致数据轻易被降级泄漏,甚至可能用户毫不知情,这是最可怕的。 |
22
xenme 2018-09-26 12:33:01 +08:00 1
都中间人了,你上的所有网都能看,即使 SSL 也没啥用,DNS,SNI 就泄露一大堆了。
加上大数据,还要啥? 套上 VPN,你总得访问 JD, Google 吧,人家后台互相之间共享 cookie,明目张胆的收集信息和隐私。 相比这些服务提供者,运营商要好太多了。 总结:不上网最安全。 |
23
iwtbauh 2018-09-26 12:37:57 +08:00 via Android
@xenme
sni 就是一个域名啊,中间人能拿到的就一个域名,和一点 metadata,传输的数据都是经过加密的啊,而且现在的基本都是支持前向保密的(甚至到 TLS1.3 强制支持前向保密),服务器私钥泄漏历史数据都没事。 除非有 TLS 的漏洞,密码算法实现的漏洞,否则你能从 TLS 里劫持什么数据出来。 TLS 漏洞一旦公开可以通过保持升级客户端和服务器操作系统,升级浏览器解决。 要是没有 TLS,岂不是随便一个人都能随便劫持,这根本不是一样的。 |
24
t6attack 2018-09-26 12:38:21 +08:00
你必须信任你的运营商,至少是有限度的信任。就像信任 CA 一样。如果连这点信任都没有,互联网几乎是不可用的。
|
25
petelin 2018-09-26 12:40:05 +08:00 via Android
跨域请求都会被拦截,更别说你要拿 cookie。。。。
访问第三方垃圾网站能拿到全部 cookie 给演示一下呗,好牛逼啊。 另外 secure 是防中间人的。谷歌不会,百度一下行不行 |
26
iwtbauh 2018-09-26 12:41:52 +08:00 via Android 1
@t6attack
对于 https 连接,我不需要信任 isp,因为 isp 没法修改在我的操作系统里的根证书 我只需要信任我的操作系统。我凭什么信任操作系统呢,因为我的操作系统使用 gpg 签名保护根证书来自操作系统开发者。 |
27
t6attack 2018-09-26 12:43:01 +08:00
还有,如果你的网站引入了第三方 JS 文件( JS 库 /统计系统),即使在 https 下,服务提供方 也可以抓取你网站用户非 httponly 的 cookies,所以这是必须要加 httponly 的问题。不是必须使用 https 的问题。
|
28
xenme 2018-09-26 12:45:07 +08:00
@iwtbauh
就说信息泄露来说,各种网站之间互相共享的 cookie 信息有多少? 如果一定要说中间人劫持的话,至少运营商干这种的很少(上海电信我没遇到过) 不算运营商,能劫持你的就流量的就更少了,除非你自己取用开放 WIFI 就你说的 TLS,也得以来 DNS 安全,运营商劫持 DNS 篡改你 public key,中间人即使你 TLS1.3 也没用。你不还得上 DNSSEC 么 安全是相对的,随便一个人就能控制运营商劫持你的流量?你劫持下我的流量看看,我刚访问 http://example.com/ |
29
tabris17 2018-09-26 12:46:47 +08:00 1
不安全的 wifi 设备就可以嗅探你的 cookie,要什么运营商
|
30
iwtbauh 2018-09-26 12:49:05 +08:00 via Android
@xenme
并非只有运营商能劫持你 你的本地网络上的用户 你的运营商 骨干网上的用户 服务器的运营商 服务器所在本地网络的用户 都有能力劫持你 “运营商劫持 DNS 篡改你 public key “,https 上,public key 又不用 DNS 来分发。public key 靠 PKI (公钥基础设施)来确保公钥来自真实的服务器。你劫持 DNS 劫持走了我浏览器早就弹出证书错误了。 |
31
caomu 2018-09-26 12:50:36 +08:00 via Android
虽然 http 确实不安全,但也不能信口开河啊。第三方 cookies 更多的是向第三方泄露了自己的网络足迹,如果是隐私洁癖是可以考虑关掉。国外网站通常都会提示你查阅他们的 cookies 政策,国内网站倒不怎么有。如果要讨论中间人的话,那么和第一方第三方也没有多大关系了,http 下中间人差不多是为所欲为了。
|
33
xenme 2018-09-26 12:52:43 +08:00 via iPhone
@iwtbauh 这里提到的 dns 是劫持你 tls 加密 sni 的 public key,并不是其他。
|
35
opengps 2018-09-26 12:54:58 +08:00
等以后全部禁用第三方 cookie 了。那么每个站长都得自己重写一个站长统计,放在自己的网站里了
|
36
wangxiaoaer 2018-09-26 12:56:04 +08:00 via Android
@est 他说的是 js 控制的 cookie 吧
|
37
iwtbauh 2018-09-26 12:56:23 +08:00 via Android
@xenme
首先你说的那个方法并不是互联网标准,拿个随时都可能被废弃草案出来没有讨论的意义。 sni 泄漏,只是一个域名啊,你觉得泄漏一个你访问的域名,中间人最多知道你访问了 example.com ,中间人能知道你和服务器之前传输了什么吗,你输入的用户名密码会泄漏吗。当然这不好,然而 http 呢,自行比较一下吧。 |
39
iwtbauh 2018-09-26 12:59:01 +08:00 via Android
|
40
wwbfred 2018-09-26 13:00:53 +08:00
第三方网站可以随便拿其他网站的 cookies?我怎么觉得你在逗我.
第三方 cookies 是允许第三方网站设置 cookies,又不是允许网站读第三方 cookies. 即使是你说的那样,也和 http 还是 https 没关系.难道你的 cookies 会根据你访问的网站是否是 https 而在本地选择是否加密? 如果真的是这样,那就是 cookies 设计的重大失误了. |
41
xenme 2018-09-26 13:01:51 +08:00 via iPhone
|
42
choury 2018-09-26 13:06:06 +08:00 via Android
@xenme 这个泄露了有什么危害吗?又拿不到我密码,也拿不到我的交易数据,照你这么说运营商还知道你要访问的 ip 呢,这个也算泄露?
|
43
xenme 2018-09-26 13:15:57 +08:00 via iPhone
|
44
find456789 2018-09-26 13:18:35 +08:00
@t6attack
还有,如果你的网站引入了第三方 JS 文件( JS 库 /统计系统),即使在 https 下,服务提供方 也可以抓取你网站用户非 httponly 的 cookies,所以这是必须要加 httponly 的问题。不是必须使用 https 的问题 ---------- 你好我想请教以下,我引入了 cdn 静态文件, 如 bootcdn、cdnjs, 是不是理论上,如果我没有把 cookie 设置成 httponly,不管我网站是不是 https 他们都可以获取我的 cookie ? |
45
wormcy 2018-09-26 13:33:41 +08:00
上网不涉密 涉密不上网
|
46
mytry OP @imdong @iwtbauh 8 楼 11 楼正解。
这个问题很多年前就有提到了,比如: [http://fex.baidu.com/blog/2014/04/traffic-hijack-2/]( http://fex.baidu.com/blog/2014/04/traffic-hijack-2/) [https://www.cnblogs.com/index-html/p/mitm-cookie-crack.html]( http://fex.baidu.com/blog/2014/04/traffic-hijack-2/) 等等。 事实上浏览器禁用 JS 都没关系,中间人往 HTML 里插几百个各大网站 <img> 外链就可以。之前登陆过的 cookie 都夹在 HTTP 请求头里往外送。 |
47
Yuicon 2018-09-26 13:41:16 +08:00
建议局域网
|
48
tailf 2018-09-26 13:59:15 +08:00
cookie 是不能跨域读取的
|
49
aqtata 2018-09-26 14:09:11 +08:00
非交互式网站根本没必要用 https,因为这类网站的 cookie 里根本没有任何有价值的信息。这一两年来的去 http 热潮是谷歌带起来的吧,背后的商业目的更明显。
|
50
fullpowers 2018-09-26 14:24:58 +08:00
建议换头像
|
51
liaoyaoheng 2018-09-26 14:43:08 +08:00
无需登录的网页,不需要 https。
https 的开销更大。 |
52
DOLLOR 2018-09-26 14:51:32 +08:00 via Android 1
自以为不用登录、没有交互就无需 HTTPS,看来很喜欢被 ISP 插入广告,把网站贴满牛皮癣的样子吧。要是竞争对手跟 ISP 合作,把你们的图片换成其他的,也乐意吧。😅
|
53
pynix 2018-09-26 14:53:55 +08:00
@liaoyaoheng 运营商大喜。。
|
54
qiuqiuer 2018-09-26 14:56:10 +08:00 via Android
用简体中文的浏览器还提隐私??
|
55
easylee 2018-09-26 15:00:47 +08:00 via Android
我自己最近做的一个站,全站 https,其中引用了百度地图的 api,可是它为 http,不兼容很麻烦……
|
56
rabbbit 2018-09-26 15:02:07 +08:00
|
58
mytry OP 准备给 chrome 或者其他浏览器提一个建议,访问 HTTP 页面默认禁用三方 Cookie,这样就解决这个问题了。
|
59
zarte 2018-09-26 15:22:08 +08:00
文不对题,骗点击。block
|
60
t6attack 2018-09-26 15:25:27 +08:00 4
又看了一遍帖子,有些讨论的不是一个问题。我来总结一下楼主想说的这个:
我的网站是 http 的,然后<img src="一张 sina.cn 的图片"。访客浏览器向 sina.cn 发出请求,其中包含 sina.cn 的 cookies。这个 cookies,我当然是拿不到的。运营商可以拿到。 我的网站页面到达用户浏览器之前,运营商可以篡改页面的数据,让访客浏览器接到<img src="163.com/sohu.com/qq.com"这样的代码,然后访客浏览器就会对这些地址发出请求,其中包含对应网站的 cookies。运营商可以拿到这些 cookies。 这样的过程,可以认为是运营商,对用户浏览器的一种攻击行为。"主动提取"用户浏览器中存储的 cookies。 |
61
fcten 2018-09-26 15:38:09 +08:00
运营商劫持的问题一直非常严重。很多网站的账号被反复盗用,应该很多人都遇到过。
|
63
CtrlSpace 2018-09-26 15:53:28 +08:00
讲这么多,不都是因为运营商太黑心。。。
|
65
xiangyuecn 2018-09-26 16:00:42 +08:00
@t6attack #60 非也~
----- 你们要的 [简单原理] 根本原因在于 https://exp.com 设置的未带 Secure 选项的 cookie,http://exp.com 发起的请求(划重点,是发请求时,发请求时。。跟响应无关)也会带上此 cookie,从而可以达到中间人"主动提取"用户浏览器中存储的 cookies。 ------ [威胁项] 懂了吗?就算上了 https,确实还是要注意一下的地方。 @mytry 针对楼主的 “访问任何一个 HTTP 网页,各大网站的 cookie 都会瞬间泄露” 虽然有点危言耸听, [不过细思极恐] 。 @iwtbauh #11 除了链接非常有用,其他的都是瞎几把扯淡。a 站的 cookie 泄露,跟 b 站是不是 https 没有关系不大,也跟 b 站是 http 还是 https 引用的 a 站资源关系不大。 |
66
zh826256645 2018-09-26 16:06:35 +08:00
|
67
lightening 2018-09-26 16:07:59 +08:00
在我的理解里,没隐私没价值的网页 = Cookie 泄露了没关系
不过,为了防止网页被插入乱七八糟的广告,我还是会装 https。 |
68
pisser 2018-09-26 16:08:19 +08:00
|
70
iwtbauh 2018-09-26 16:23:44 +08:00 via Android
|
71
iwtbauh 2018-09-26 16:25:13 +08:00 via Android
|
72
xiangyuecn 2018-09-26 16:31:25 +08:00
|
73
yc8332 2018-09-26 16:34:05 +08:00
半桶水的大佬厉害了。
|
74
xiangyuecn 2018-09-26 16:53:31 +08:00
@iwtbauh #71 嗯,遇到过阻止混合内容的情况,以前有次把 http 切换成 https 的时候,功能正常,但图片都没法显示,上线 10 分钟立马回滚,后面发布新版本里设置浏览器允许混合内容后才恢复 https (仅 Android app )。
---- 刚刚把 Secure 选项加到了 SetCookie 方法里 代码写的丑,@yc8332 被你言中,满意否~ |
75
snw 2018-09-26 17:18:57 +08:00 1
|
76
imn1 2018-09-26 17:29:59 +08:00 2
隐私的问题,理论上现有的机制足够达到安全,但现实中被获取、泄漏却变成常态,这才是问题
一个机制,尤其是涉及多方的,只有各方守规矩,才能做到最初预想效果 运营商劫持,本不应是一个担心项,应该不会发生的,但这个帖子每个楼层,哪个能大声说自己从来没被劫持过,这是很糟糕的,已经到了每个人 一个浏览器扩展,本来代码是开放的,应该也不能作恶,但现实就是爆雷不断 公共 wifi,本也应该是善意的,但现实中的宣传语,全部都是叫大家不要用,为何 一个合约,没有违约部分,这个合同也是废纸一张 如果一个人因为自己的隐私被窥探,报警,警察还找不出受理的法律条文,因为数量不够、没有「卖」…… 现在倒不是每个人是运营商,是每个人都是「安全专家」,不为虚名,而是真心想成为真实的专家保护自己 现在最没权限的乙方,丙方、丁方……权限都比乙方高,反正乙方不值钱,人家丙方丁方还给钱呢 |
77
marcong95 2018-09-26 17:31:01 +08:00
我在医院厕所蹲坑开了一下自己一个还没做好的 http 网站就瞬间意识到了 https 的重要性了。。。整个页面都是特么的广告,自己的内容不超过 1/4。
至于你说的第三方 Cookie,我还真的想得不是很通有什么大问题 |
79
sampeng 2018-09-26 18:01:13 +08:00
归根到底是网站本身对安全性的考量是如何的。
安全意思强的团队,自然会加 Secure+https。安全意识弱的就不知道这两个东西。。。而且 https 本身会增加成本。。。 这个吐槽没什么意义。1.你没办法控制流量劫持。2.你也没办法去要求一个不注意安全的公司把所有的东西基本安全做到位 |
80
sampeng 2018-09-26 18:07:37 +08:00
另外也没必要恐慌。
除了隐私会被洗刷刷外,和钱有关的倒是没什么太大问题的。都有二次交易密码。 另外,有些懒得搞 secure+https 的也会有一些措施的。比如 cookie 本身是加密的。如楼上所说的 sina。2012 年抓包研究过。cookie 里只是一些索引 id 和加密信息。虽然回放是可以登录没错。但条件也比较苛刻。防君子不防小人那种。 再比如 cookie 加密信息里面会有过期信息。ip 等信息,多重的校验防止 cookie 被劫持了回放。问题是有。但不至于人人自危。。。 所以,各位同行。。。虽然不做安全方面专家,基本的安全手段还是要注意一下 |
81
est 2018-09-26 18:08:22 +08:00
|
83
acess 2018-09-26 19:20:15 +08:00
HTTPS Everywhere 这个插件应该能起到一些作用吧?
|
84
Hallujah 2018-09-26 19:23:19 +08:00 via Android
使用禁用第三方 cookies 功能后,chrome 和 firefox 都无法在 youku 上播放视频
|
85
mytry OP @est 几年前还发现微博视频 flash 的一堆业务漏洞,任意网站都可以读取已登录微博的私信~(不用中间人,就普通的类 CSRF )貌似到现在都没修。只是 flash 被主流浏览器禁用,这个漏洞自然失效。。。
另外网易邮箱同样也有这个漏洞,任意网站都可以读取发送用户的邮件~ 上报了几次同样没修,到现在仍有效。。。 这几个漏洞都是没禁用三方 Cookie 导致的。禁了三方 Cookie 绝大多数 CSRF 漏洞都会失效。 |
86
ccnccy 2018-09-26 19:52:07 +08:00 via iPhone
很多年前听说过,黑产来的
|
87
kslr 2018-09-26 20:02:09 +08:00
禁用了第三方 cookie 很久了,就我的使用体验,只有几个不重要的网站不能使用。
国内 bilibili 不能登录而已 |
88
kingcc 2018-09-26 20:02:28 +08:00
钓鱼贴终结
|
89
kawaii303 2018-09-26 20:03:49 +08:00
chrome 设置阻止第三方 cookie 后,淘宝无法登录,因此阻止第三方 cookie 也有副作用。
|
90
mmdsun 2018-09-26 20:16:40 +08:00 via Android
说的是 xss 吧?没看懂
|
91
mytry OP @kawaii303 重要的网站用专门的浏览器,禁用三方 Cookie (以及禁用各种扩展),只访问固定几个网站。平时访问普通网站用开着三方 Cookie 的浏览器。
|
92
zwh2698 2018-09-26 22:35:30 +08:00 via Android
Https 应该大量推广,但是安全总是攻防。只是暂时还好。在国内某厂的员工访问外部的 https 内容照样被监控,插入内容,拦截内容。所以安全给了我们提醒思想不能放松,这可能才是重要的,https 等也仅仅是一个手段而已
|
93
lscho 2018-09-26 22:54:12 +08:00
直到现在还有人认为导致用户 cookie 大片大片的泄露的原因是:国内大部分网站隐私 Cookie 都没加 secure,也极少有网站同时开启 HSTS+includeSubDomains。只要允许了三方 Cookie (各大浏览器默认允许),访问任何一个 HTTP 网页,各大网站的 cookie 都会瞬间泄露。。。
原理很简单,楼主给讲讲呗? |
94
ww2000e 2018-09-26 22:58:05 +08:00 via Android
第一份工作就是网络审计,猥琐极了
|
97
meik2333 2018-09-27 00:15:44 +08:00 1
感觉这个问题是全网存在的啊......
别的不说,如果有人连接我的 WiFi 上任何一个 HTTP 的网站,那我就能拿到他 QQ 的 skey,然后各种瞎搞。运营商要是想搞的话只会更容易吧。 |
98
msg7086 2018-09-27 00:22:05 +08:00
@xenme ESNI 还在 draft 吧,啥时候上线还不好说呢……
而且要中间人 ESNI,那等于是对 ESNI 做无差别阻断了吧,感觉已经超出劫持获取域名这个范畴了。 |
99
lscho 2018-09-27 00:38:23 +08:00 via Android
@mytry 所以呢?中间人的话,https 有什么用?访问任何一个 HTTP 网页,各大网站的 cookie 都会瞬间泄露?麻烦你给我个 http 网页,把我的 cookie 拿一下
|
100
likaka 2018-09-27 10:57:20 +08:00
软件在局域网怕个叼
|