Azure 防止用户上载恶意文件

Azure 防止用户上载恶意文件,azure,storage,azure-storage,azure-storage-blobs,Azure,Storage,Azure Storage,Azure Storage Blobs,我的问题是-在使用Azure存储时,这是为我处理的还是我必须确保用户不会上传可能危害服务器的内容 在处理文件和Azure存储时,我应该保护自己不受什么影响?据我所知,Azure Blob存储没有内置的方法来防止上传不需要的文件(如果没有通过用户代码阻止的话)。对于Blob存储,上传文件需要一个主访问密钥,因此将文件放入存储的唯一方法是通过公开的API[网站/应用程序]。在允许用户进入之前,您需要在那里进行文件类型验证。使用此功能,您可以创建在设定时间内有效的SharedAccessSignatu

我的问题是-在使用Azure存储时,这是为我处理的还是我必须确保用户不会上传可能危害服务器的内容


在处理文件和Azure存储时,我应该保护自己不受什么影响?

据我所知,Azure Blob存储没有内置的方法来防止上传不需要的文件(如果没有通过用户代码阻止的话)。对于Blob存储,上传文件需要一个主访问密钥,因此将文件放入存储的唯一方法是通过公开的API[网站/应用程序]。在允许用户进入之前,您需要在那里进行文件类型验证。使用此功能,您可以创建在设定时间内有效的SharedAccessSignatures,允许进入您的存储帐户以从应用程序加载文件或使用CORS通过web加载文件。jigear的回答中也提到,上载新blob需要帐户密钥或具有写访问权限的共享访问签名。Azure存储不知道此blob是否包含php文件,因为Azure存储服务不查看blob内容。您的网站如何使用这些blob完全由您的网站控制。

一个可能的解决方案,希望您将此功能作为应用程序的一部分: 您可以在Azure云中创建Web API应用程序(或MVC应用程序)。这样,您将拥有:

  • 控制用户可以上载的文件和扩展名。描述
  • 能够扫描用户上传的文件中的病毒。描述
  • 控制上传过程。也可以从流重定向。描述。请看“将文件另存为流”。这样,TourWebAPI应用程序将充当安全中继
  • 应用程序和blob之间连接的好处是,如果它们位于同一区域,则连接速度将非常快。它们很可能彼此非常靠近

我理解这一点,但我担心的是,是否会上载一些会危害网站的文件?(例如,获取文件列表的cshtml/php文件)例如,有人可以上传可执行文件吗?是的。如果你没有明确拒绝前男友被上传,他们可以。他们不会做任何事,除非他们运行,如果我只是通过我的网站上的链接下载上传的文件,有什么风险,我应该保护自己免受?我们将对这些文件进行一些安全检查,但我们不会及时进行测试。