一个使用腾讯云-cos-原图保护功能的问题,腾讯云工单没有得到满意的方案,请教下大家,有没有其他方案呢?

2020-06-03 23:16:01 +08:00
 cyjme
两个腾讯云功能的主角:
1 、cos 对象存储,
2 、数据万象-原图保护

期待:
用户只能访问到处理后的图片,但是无法访问原图。
『单纯看这个期待值,使用 数据万象-原图保护 很容易完成。』


但是,考虑下面这种情况:

用户在上传图片时,可以通过浏览器调试工具看到上传时的域名,这个域名是 cos 对象存储的(已知使用数据万象的域名无法完成上传),那么用户就可以直接通过这个 cos 域名去访问到原图。

只要用户会查看调试工具,就能拿到原图了!!


腾讯云工单给的回复,cos 设置私有读,让用户带签名访问,带签名的话也可以直接得到原图的啊。

还在和腾讯云工单沟通中,但是目前第二个工单也是说让带签名。。。。

我觉得我的需求挺合理的,带签名上传,读取的时候不需要签名,只可以读到处理后的非原图。但是现在看来好像腾讯云的原图保护功能无法满足这个需求。
2015 次点击
所在节点    全球工单系统
17 条回复
huyi23
2020-06-03 23:18:41 +08:00
带签名怎么获得原图啊?两个签名的 sign 都不一样啊
letitbesqzr
2020-06-03 23:59:52 +08:00
@huyi23 #1

楼主估计想的是,私有写公有读,读取不带签名。

数据万象的原图保护,似乎只在经过数据万象域名的时候才生效,在公有读的情况下,如果知道 cos 自动分配的域名,没办法避免读取到原图....
cyjme
2020-06-04 00:06:02 +08:00
@huyi23 我想到了 url 不同,签名也不同,但是查询文档后,根据我对文档的理解,数据万象域名并不会校验签名,只有 cos 会校验。

这个我明天再验证下。
letitbesqzr
2020-06-04 00:09:01 +08:00
数据万象就坑在这点...不能像 cdn 那样进行内部鉴权,存储库开启私有后,用户访问数据万象就必须带上签名。。
cyjme
2020-06-04 00:13:52 +08:00
现在客服讲理论上是可以通过 数据万象的域名上传图片的,这样子就可以不暴露 cos 的域名。

目前通过数据万象的域名上传图片遇到错误,客服在排查中。
cyjme
2020-06-04 00:23:39 +08:00
@letitbesqzr 对的,我也是很不能理解这点,只要像 cdn 那样做个内部鉴权,就什么问题都没有了。。。

看了下阿里云的文档和控制台,应该没有这个问题,因为图片处理没有和 oss 分离开。。
xmumiffy
2020-06-04 00:24:00 +08:00
不明白为啥 cos 要公有读?
yuzo555
2020-06-04 00:28:16 +08:00
1. 前端不会计算出 GetObject 的 sign,用户无法直接 F12 访问,需要自行计算签名;
2. 如果你担心 1. 的问题,可以不要授权 name/cos:GetObject 这个权限给临时密钥;
3. 如果你仍然担心,还可以自行在上传完成后重命名(服务端 copy 后 delete 源文件名)。
cyjme
2020-06-04 00:31:08 +08:00
@xmumiffy 网站业务上来说图片是要公有访问的。

为什么不 cos 私有读,然后 cdn 层面做公有呢?
cos 绑定 cdn 的确支持回源鉴权。

但是因为要经过数据万象处理图片,而数据万象不支持回源鉴权。
yuzo555
2020-06-04 00:35:04 +08:00
@cyjme 数据万象支持 CDN 私有鉴权的。你私有之后遇到的问题是啥?
cyjme
2020-06-04 00:43:11 +08:00
@yuzo555
1 的方案,但是我觉得还不至于为所有的图片都生成签名。如果每次用户访问的时候生成签名,明显浪费了时间在生成签名上。如果提前为每个资源生成一个较长期的签名,这些签名总要过期的,签名后的链接保存也是问题。 网站业务的角度来说,这些大量的图片本来就是公开的,只是希望用户看不到原图而已,所有的都加签名好像有点过份了。另外根据目前看文档的理解,用户拿到签名,就可以访问到原图了。cos 中的是原图,数据万象相当于是网关,签名只针对 cos,数据万象不处理签名。

2 不是很理解,应该 1 种可以证明不可取。

3 你的理解应该是上传后直接就生成了,缩略图或水印图,但是目前我是想直接通过原图保护这个网关层面的逻辑,在访问图片的时候实时处理。

为了解决问题,其实也可以设置上传后,所有文件自动拷贝到另外一个桶里,或者上传后马上处理图片。
解决业务问题,现在是有办法解决的,只是觉得,腾讯这个原图保护的功能有缺陷,没有给用户一个很好的体验。
cyjme
2020-06-04 00:47:38 +08:00
@yuzo555 控制台和文档中,都没有找到『数据万象支持 CDN 私有鉴权』

在 cos 中设置 cdn 的时候是可以启用 回源鉴权的,但是数据万象中没找到。
myd
2020-06-04 00:49:11 +08:00
可以设置只能写不能读
cyjme
2020-06-04 00:49:42 +08:00
v 站被 google 收录的真快,刚才已经可以搜索到这个帖子了。
cyjme
2020-06-04 00:51:20 +08:00
@myd 没有这么简单,有兴趣深究的话,可以再看下上面的几个回复。
yuzo555
2020-06-04 00:57:00 +08:00
确实是,他这个设计逻辑有问题。

但是你还是可以开启 COS 的私有读写的,然后 CDN 用数据万象的源站当源站。
用户 F12 得到的 COS 地址就无法访问了,缺点是如果用户替换了 COS 源站地址中的 cos.ap-guangzhou 替换为 picgz,就又可以访问了。
gouki0123
2020-06-07 17:26:35 +08:00
@cyjme 不知道你前端上传是怎么获取密钥的,如果是通过后台返回临时密钥,前端 SDK 计算签名的方式,可以申请密钥的时候只给上传权限,不给下载权限,就可以解决用 COS 域名可以访问到原图的问题。如果希望处理后的图片可以公有读,那么把处理结果存在另外一个公有读的桶就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678415

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX