确保图片转换请求安全无虞

本页介绍了如何确保对谁可以查看您的内容以及查看时长进行更精细的控制。您可以使用 Cloud CDN 签名网址和 Service Extensions,以安全地在限定时间内访问经过优化的图片。

借助标准未签名网址,用户可以在浏览器中手动更改或移除查询参数字符串。如果您的业务逻辑依赖于图片转换来实现隐私或访问权限控制,则未签名的查询会带来以下风险:

  • 元数据泄露:攻击者可以移除 metadata,preserve=none等参数,以检索源文件中隐藏的 GPS 坐标或敏感的 相机信息。

  • 绕过视觉修订:如果您使用参数通过裁剪、调整大小或 模糊处理来隐藏面部、 车牌或机密背景,则用户可以移除这些参数以查看 未修订的图片。

您可以使用签名网址和 Service Extensions 来阻止不必要的转换请求。

使用签名网址进行预防

如需降低这些风险,请配置 Cloud CDN 签名网址以保护您的路由。对网址进行签名后,整个 imop 查询参数配置字符串将成为加密签名的一部分,Cloud CDN 会在每个请求中验证该签名。如果用户尝试更改操作或参数(例如 sizes),Cloud CDN 会自动验证加密签名并拒绝该请求,返回 HTTP 403 Forbidden 状态代码。

如需了解详情,请参阅签名网址

使用 Service Extensions 进行许可名单

借助 Service Extensions,开发者可以将自定义可编程逻辑注入 Cloud CDN 数据平面。在图片优化功能处理请求之前,此自定义逻辑可以实现高级请求操控和安全强制执行。

Service Extensions 允许解析 imop 查询字符串,并将其参数与固定的许可名单进行匹配。例如,它只能允许预定义的响应式宽度,即 200400800

以下示例演示了未经授权的请求如何尝试绕过边缘缓存,以及 Service Extensions 如何处理此类请求:

  1. 客户端请求未缓存的非标准图片大小:

    image.jpg?imop=Resize,width=401

  2. Service Extensions 在 Cloud CDN 边缘拦截请求。它会解析查询字符串以提取 transformation parameter: width=401

  3. Service Extensions 将 401 与预定义的响应式设计断点进行比较:

  4. 许可名单:200400800

  5. 检测到 401 不在许可名单中后,Service Extensions 会立即终止请求并返回 HTTP 403 (Forbidden) 错误,或移除参数以提供原始图片。

系统不会处理该请求,这可以防止边缘计算资源耗尽。

如需了解详情,请参阅 Service Extensions

后续步骤