Javin
Javin
  • 发布:2023-06-05 20:02
  • 更新:2023-12-29 15:31
  • 阅读:309

阿里云和腾讯云的云存储的权限问题

分类:uniCloud

我现在开发用的阿里云,但是开发过程中遇到一些问题,主要是关于云存储。
首先阿里云的云存储没有权限管理而url是固定的,如果存入一些敏感信息比如身份证照片,其他人有没有遍历我的阿里云的服务空间找出这些身份证的能力?

如果我使用腾讯云虽然有权限限制但是要获取url好像必须使用uniCloud.getTempFileURL函数实现,那么带来的问题是这个函数调用应该是计费的?第二个问题是如果要显示图片用阿里云我只需要<image src="在这里填url"></image>但是用腾讯云每个地方都要套一层uniCloud.getTempFileURL?

还有就是数据管理的问题,根据文档对deleteFile(Object object)的描述如下:

客户端删除云存储文件。
不建议使用此API。删除云存储文件是一个高危操作,应该由云函数进行权限校验后由云函数来删除云存储的文件。
阿里云不支持此API,前端运行此API会报权限错误
腾讯云支持此API,如若使用,需搭配腾讯云提供的自定义登录和权限设置使用

上面说"阿里云不支持此API,前端运行此API会报权限错误",那么在云函数中是否可以使用此api。

最后如果用户恶意大量上传数据有没有办法阻止?

2023-06-05 20:02 负责人:无 分享
已邀请:

最佳回复

DCloud_uniCloud_VK

DCloud_uniCloud_VK

最新更新(2023-12-29)

unicloud已支持扩展存储,具有更强大的自定义权限控制,更便宜的cdn流量价格,流量按阶梯收费,越用越便宜,具体算来下比用传统cdn流量包还便宜。

而且不管空间是包月的还是按量计费的都能开通扩展存储。

扩展存储是DCloud联合业内其它主流CDN厂商,单独提供了价格更便宜、功能更强大的uniCloud扩展存储

扩展存储文档: https://doc.dcloud.net.cn/uniCloud/ext-storage/intro.html

扩展存储开通指南: https://doc.dcloud.net.cn/uniCloud/ext-storage/service.html

以下是2023-06-05日的回答

1、首先阿里云的云存储没有权限管理而url是固定的,如果存入一些敏感信息比如身份证照片,其他人有没有遍历我的阿里云的服务空间找出这些身份证的能力?

答:目前阿里云空间云储存因为是公开权限,不适合直接将身份证储存到云储存, 但我们可以通过在云函数把身份证图片转成base64后,再将base64进行AES加密, 得到的密文转二进制后上传到云储存。这样即使被扫描,对方也无法破解图片。
当你需要看身份证时,通过云函数去解密得到原始的base64,就可以显示图片了。

2、如果我使用腾讯云虽然有权限限制但是要获取url好像必须使用uniCloud.getTempFileURL函数实现,那么带来的问题是这个函数调用应该是计费的

答: 是的,会消耗CDN流量和下载次数

3、用腾讯云每个地方都要套一层uniCloud.getTempFileURL?

答:是的,不过腾讯云如果设置公共读权限,则获取到的临时url其实是永久有效的。

4、上面说"阿里云不支持此API,前端运行此API会报权限错误",那么在云函数中是否可以使用此api。

答:云函数中可以使用此api。

5、最后如果用户恶意大量上传数据有没有办法阻止?

答:目前没办法阻止,只要提供了前端直传能力的oss,就没办法阻止用户上传(不过可以联系官方帮你把你空间上传功能关闭了),但用户只上传的话,影响比较小,毕竟可以去控制台删除。云储存的费用大头是CDN流量,上传不会扣CDN流量,访问才扣,同时当你流量超过1G了,第二天可以开通CDN安全管理,可以封访问量过大的IP,UA等等。

  • Javin (作者)

    感谢你的回答,如果用户自己私自上传数据我能否知道哪些是用户自己私自上传的?好在之后删除掉。


    2023-06-05 21:44

  • Javin (作者)

    假设我写一个程序不停的给一个云存储上传数据作为攻击手段,一个终端一天上传100G,30天就是3T。如果多几个这样的终端很容易发起攻击造成云存储空间耗尽,我在想能不能写个程序自动定时监测没有经过授权上传的数据。我能想到最简单的方式就是每个上传的数据都要入库,但是随后能否循环检查上传的文件,这样可以和数据库做对比,但是这样做也有一个效率的问题,在新文件不多的情况下是可以考虑的。还有如果使用腾讯云的话我看文档有个腾讯云存储自己的用户系统,我能否在腾讯云的这个用户系统里面封禁某个用户?


    2023-06-05 22:15

  • Javin (作者)

    我好像没有找到获取从某一个时间段之后上传的文件列表函数。所以这种检索程序能否写的出来?


    2023-06-05 22:29

  • DCloud_uniCloud_VK

    回复 Javin: 目前没有提供云储存文件列表的API, 目前来说,还没有人通过上传来攻击的(这个攻击方式影响力不大), 目前主要还是针对CDN流量的攻击.


    2023-06-06 11:28

  • DCloud_uniCloud_VK

    还有按量付费是有阈值的, 你可以设置一下上限即可. 套餐的话, 也有上限


    2023-06-06 11:30

  • Javin (作者)

    回复 DCloud_uniCloud_VK: 如果套餐达到上限其他用户也会收到影响套餐的硬盘没多大,这是一个很大的问题,而且套餐从新开通依然可以通过这个方式进行攻击。还是云存储做一套临时权限才能彻底解决这个问题。毕竟这么好用的功能再去用阿里云和腾讯云官方提供的存储服务用起来挺别扭的,一些上传的组建也要自己从写。


    2023-06-06 16:11

  • DCloud_uniCloud_VK

    回复 Javin: 你用阿里云的oss也一样碰到这个问题,如果你在云函数中上传,然后在云函数内进行权限判断,那流量费用和云函数运行费用更大。


    2023-06-06 16:13

  • DCloud_uniCloud_VK

    不过阿里云也在不断升级防护方案, 包括云储存的CDN防刷等等


    2023-06-06 16:52

  • Javin (作者)

    阿里云的话我可以给用户生成一个临时的上传证书STS,而且我可以指定用户只能上传什么到什么位置,而不是用户想传什么就传什么,如果有捣乱的用户封他号他就不能再上传了只能从新注册新账号,主要是担心真有人不停的上传数据硬盘满了还没办法清理,直接导致服务彻底不能用了,他干我服务器,老板干我。


    2023-06-06 18:46

  • Javin (作者)

    回复 DCloud_uniCloud_VK: 如果使用阿里云官方的oss,就是会浪费掉套餐带的云存储资源,而且攻击者其实也可以上传数据到这块没有用的云存储上只是不会影响到服务。


    2023-06-06 18:52

要回复问题请先登录注册