🏆 优势特性
签名URL请求次数限制
S4 原生支持 x-bitiful-max-requests 限制签名后 URL 的访问次数。
传统的对象存储(Tencent COS、Aliyun OSS、AWS S3)的预签名 URL 只支持时间限制,不支持次数限制,这大大降低了对象存储的安全性。
缤纷云 S4 支持对 GetObject 和 PutObject 的预签名进行次数限制。
如何使用
只需在生成预签名 URL 时,加入 x-bitiful-max-requests=10
参数(可将后面的 10 修改成你需要限制的次数)
系统会在第 11 次访问的时候返回 403 ReachTheMaxRequests 错误。
安全建议
为 PutObject 签名时,将时间限制在较小范围(如 10分钟),并限制最大请求次数为:1 次,这样可以帮助 PutObject 的签名 URL 杜绝被重放。
范例参考
缤纷云开源了一个无状态的 签名URL 生成服务,可支持多种安全参数及独有的性能特性。
参数名 | 类型 | 必填 | 默认值 | 说明 | 作用范围 |
---|---|---|---|---|---|
key | String | 是 | - | 对象的键名/路径,用于在S3存储桶中标识对象 | PUT & GET |
content-length | Int | 否 | 不限制 | 上传内容的长度(字节),范围:大于0且不超过1GB(1024MB) | PUT |
no-wait | Int | 否 | 0 | 开启”即传即收”功能的等待超时时间(秒),最大值为10秒 | GET |
max-requests | Int | 否 | 0 | 最大下载次数限制,指定URL可被访问的最大次数 | PUT & GET |
expire | Int | 否 | 3600 | URL的有效期(秒),默认为1小时 | PUT & GET |
force-download | Bool | 否 | false | 是否强制下载(设置为true时会添加attachment响应头) | GET |
limit-rate | Int | 否 | 0 | 单线程限速值(字节/秒) | GET |
Github:https://github.com/bitiful/s3-presigned-api-server
项目集成
缤纷云开源的「缤纷快传」较好地利用了这一特性