【问题标题】:How to prevent other domains from getting images from azure blob storage如何防止其他域从 azure blob 存储中获取图像
【发布时间】:2021-10-12 23:08:54
【问题描述】:

我在天蓝色存储中设置了cors(URL-例如:www.abc.com, GET, *, *, 200)

然后我只是从存储中复制链接

https://demo.blob.core.windows.net/demo/demo.png

而且在postman或者localhost(web)上使用,还是可以显示图片,正常吗?

我想邮递员和本地主机网站将无法获取图像,一旦 cors 设置为 azure 存储。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    CORS 可防止通常由 AJAX 请求发送的跨域请求。如果这样的请求是从您的浏览器发送的,它将执行一个预检请求,以查看您当前的域是否被允许发出这样的请求。例如,它将阻止该站点在后台向api.<yourbank>.com 发送POST 请求以进行转账。

    它不会阻止任何人在其网站上嵌入图像或其他文件,因为浏览器不会执行此类预检请求,除非他们通过 AJAX 请求调用资源。同样,Postman 不会这样做,因为它是一个测试工具,您可以在其中明确定义要发送的请求,而不是在另一个“域”上。

    【讨论】:

    • 那么azure storage中有没有阻止获取图片的功能(比如认证请求,如果确认就创建,否则拒绝获取图片(即使输入了图片url,图片也无法获取)显示或下载))?除了创建具有短期 SAS 的私有 blob
    • 仅使用您没有太多选择的存储帐户。防火墙是唯一可以真正阻止流量的东西。如果您只想阻止读取,您可以加密文件(尽管这需要在另一端解密)。另一种选择是使用函数应用程序,其唯一目的是验证请求并重定向到短期到期的 SAS。这样,您可以应用任何您喜欢的自定义身份验证逻辑,并且仍然可以让您的用户直接访问文件而无需额外费用。
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 2015-11-04
    • 2021-11-01
    • 1970-01-01
    • 2019-12-31
    • 2018-11-21
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多