【问题标题】:Does Cloudinary prevent arbitrary file uploads?Cloudinary 是否阻止任意文件上传?
【发布时间】:2014-07-13 08:47:33
【问题描述】:

@cloudinary 如何防止恶意用户通过客户端图像 API 上传任意文件?是否需要任何配置来确保阻止任意文件上传?

【问题讨论】:

    标签: ruby-on-rails security cloudinary


    【解决方案1】:

    如果你使用Cloudinary的上传器,可以在upload()中指定允许的文件类型:

    Cloudinary::Uploader.upload('image.jpg', allowed_formats: ['jpg', 'jpeg', 'gif', 'png'])
    

    如果您使用CarrierWave,则可以将允许的文件类型列入白名单。例如:

    class ImageUploader < CarrierWave::Uploader::Base
      include Cloudinary::CarrierWave
    
      def extension_white_list
        %w(jpg jpeg gif png)
      end
    end
    

    【讨论】:

    • 客户端上传怎么样?
    • 你可以使用acceptFileTypes,这里是一个例子:github.com/cloudinary/…
    • 谢谢!但我仍然需要做一些事情来阻止用户在浏览器中更改此属性...是否有 Cloudinary 端(服务器端)设置确保端点只接受图像?
    • 我认为没有 Cloudinary 设置。但为什么这是一个问题?如果文件不是图像,Cloudinary 将在上传时返回错误。如果文件是图片,可以转换成任意格式:cloudinary.com/documentation/…
    【解决方案2】:

    您可以设置上传预设并将其设置为默认上传预设。这可以在您的上传设置页面中定义: https://cloudinary.com/console/settings/upload

    上传预设可以包含许多与上传相关的参数,例如允许的格式、传入的转换、急切的转换等等。

    这样,无论用户是否更改了您的客户端代码,都只会允许上传您上传预设中定义的允许格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 2020-08-05
      • 2022-08-03
      • 2017-04-09
      • 2010-10-10
      • 1970-01-01
      • 2021-08-18
      • 2021-05-12
      相关资源
      最近更新 更多