mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/yunionio/cloudpods.git
synced 2026-09-20 08:03:53 +08:00
- Reject signed requests older or newer than 15 minutes (x-amz-date for v4, Date for v2), so intercepted valid requests can no longer be replayed indefinitely - Decode the object key exactly once: r.URL.Path is already decoded by net/http and is the form the signature covers, decoding again let a signature for one key be replayed against another (e.g. %252e%252e%252f resolving to ../) - Add unit tests for both behaviors Co-authored-by: Qiu Jian <qiujian@yunionyun.com> Co-authored-by: Claude <noreply@anthropic.com>