是否可以对Azure blob名称进行模糊处理或加密?

时间:2017-04-24 20:54:36

标签: azure blob

我的应用程序将上传的用户数据存储到我的Azure blob存储帐户 - 例如照片等。 blob以其相应的行命名。关系数据库中的主键;例如/tenants/12/users/456/photos/1563445

这些文件可由匿名,未经身份验证的用户访问,但我不想公开主键值(以防止"顺序访问"攻击,或者我的竞争对手看看我的服务有多受欢迎。)

目前我的blob存储容器是私有的,所有blob请求都通过我的Web应用程序进行代理。为了减少服务器负载,我想直接公开blob,但这意味着将原始blob名称暴露给最终用户,这会泄露未加密的数据库主键值。

我知道我可以阻止使用共享访问签名访问blob但是我不需要那种安全性 - 我只想混淆blob名称 - 例如通过简单的对称加密。

有没有办法使用"纯Azure"接近并直接暴露blob商店,还是我必须使用自己的代理?

2 个答案:

答案 0 :(得分:1)

这完全取决于您和您的应用。只要容器和blob名称遵循已发布的命名约定,您就可以将它们命名为任何所需的名称。但是如果你想混淆它们的真实含义(比如数据库id),你需要做自己的映射,并将该映射存储在某个地方。 blob存储没有内置的混淆功能。

答案 1 :(得分:-1)

也许您需要的只是哈希hashids

然而,通常使用公共容器来获取用户的私人数据并不是一个好主意。 SAS实际上是非常安全的,因为链接只有一段时间可用,在peopel入侵之前,它应该已经过期了。