我理解的 CDN 就是一个缓存,而这个缓存是在别人手里,自己
完全不可控。
缓存篡改了数据你也不知道。
部署 https 之后,部分 CDN 的实现甚至需要上传 private key,
这样岂不是把家里的钥匙都给别人了?
不知道我哪里理解错了?
1
silencefent 2019-08-06 11:01:32 +08:00
被篡改了甚至你还没法得到用户反馈
|
2
passerbytiny 2019-08-06 11:04:35 +08:00 2
“我想找个管家帮我看家,但是我不知道他是否可信,钥匙到底给不给他呢?”系列。
|
3
imWBB 2019-08-06 11:05:48 +08:00 via Android
找一个你能信任的。
如果没有 自建一个 cdn |
4
anguiao 2019-08-06 11:07:18 +08:00 via Android
你要用自己的证书当然得上传私钥了,用它提供的就不需要上传。
这个本来就是这样的,你用了它的服务就代表你信任它。 |
5
xiri 2019-08-06 11:08:31 +08:00
本来就是这样嘛,你不信任它就不要用它
|
6
virusdefender 2019-08-06 11:36:01 +08:00
|
7
tabris17 2019-08-06 11:38:59 +08:00 1
cdn 如果要提供 https 服务,必须要缓存明文内容,这一点无法避免。我们只能假设 cdn 服务商是可以信任的。
另外 cdn 回源访问之间的通信也的确有被中间人攻击篡改的可能性,这一点无法避免 |
8
anzu 2019-08-06 12:12:50 +08:00 1
没错,就是中间人。另一个妥协的办法是,静态资源单独开设子域名用不同的证书,CDN 用该子域名,非静态资源请求还是连接到你的服务器。
|
9
yzkcy 2019-08-06 12:18:41 +08:00 1
针对 CDN 的缓存投毒,很有意思。https://www.anquanke.com/post/id/156356
|
10
BCy66drFCvk1Ou87 2019-08-06 15:29:29 +08:00
没理解错,cdn 完全是一个内容副本
|
11
MonoLogueChi 2019-08-06 16:57:16 +08:00 via Android
很多 CDN 有网页压缩,gzip 压缩,自定义 header 头等功能,严格一点来讲,只要开了类似的功能,你的网页就已经被中间人攻击了
|