【问题标题】:Is Cloudinary API secure if I do the following如果我执行以下操作,Cloudinary API 是否安全
【发布时间】:2020-02-25 19:35:03
【问题描述】:
我正在使用下面的基本 api url,就像在许多示例中一样 ..https://api.cloudinary.com/v1_1/name。
但是,如果我使用 dotenv 来隐藏名称并像下面这样隐藏上传预设,那么这将保证我的 api 安全,或者人们能够从上传图像时返回的 img url 中找到它。
formData.append('upload_preset', process.env.REACT_APP_UPLOAD_PRESET);
https://api.cloudinary.com/v1_1/${process.env.REACT_APP_CLOUD_NAME}/image/upload,
【问题讨论】:
标签:
javascript
reactjs
cloudinary
【解决方案1】:
如果您允许从客户端代码上传并将它们从客户端直接发送到 Cloudinary,用户将始终能够看到您使用的云名称和上传预设名称,即使在您的应用源中不容易看到,然后肯定是通过代理或其他调试工具。
但是,这是意料之中的,也是使用未签名上传选项的原因:未签名上传允许您在客户端无法使用您指定的上传预设向服务器组件验证自己的情况下执行上传 - 什么上传文件的发生情况由上传预设中的预配置选项确定,因此您可以以某种方式命名它们,将它们放在特定文件夹中,添加标签,在保存之前通过调整大小或其他转换来编辑图像,等等
如果您不想公开云名称或上传预设名称,则需要将文件传递到您控制的服务器端点,然后从那里上传到 Cloudinary,这将使您处于相同的状态客户端代码能够在没有身份验证的情况下上传文件的基本情况[或使用您的用户可以看到并可以复制的身份验证],尽管这样它将是您服务器上的端点,而不是 Cloudinary 的 /v1_1/