Bug: `/favicon/proxied` 对不同 URL 返回相同图片(缓存键问题?)

摘要

/favicon/proxied 似乎对不同的输入 URL 返回了相同的图片。

该问题在 meta.discourse.org 上可复现,因此并非特定于某个实例。


复现步骤

使用两张不同的图片进行测试:

图片 A:

https://d11a6trkgmumsb.cloudfront.net/original/4X/6/1/4/6144f7183b605c2c615a2f18a238a0788fe5f4c9.png

图片 B:

https://h2cdn.appinn.me/original/3X/9/f/9fd7005050c813d23be27f02f7bc8b63b6b254ba.png

通过以下地址访问:

https://meta.discourse.org/favicon/proxied?https%3A%2F%2Fd11a6trkgmumsb.cloudfront.net%2Foriginal%2F4X%2F6%2F1%2F4%2F6144f7183b605c2c615a2f18a238a0788fe5f4c9.png
https://meta.discourse.org/favicon/proxied?https%3A%2F%2Fh2cdn.appinn.me%2Foriginal%2F3X%2F9%2Ff%2F9fd7005050c813d23be27f02f7bc8b63b6b254ba.png

实际表现

  • 不同的输入 URL 返回了相同的图片
  • 响应内容与请求的 URL 不匹配
  • 看起来像是缓存冲突或缓存键不正确

预期表现

  • 每个 URL 应返回其对应的图片
  • 缓存(如果存在)应以完整的源 URL 作为键

备注

  • 在官方 Meta 实例上可复现
  • 与 CDN 或本地配置无关
  • 在不同图片和请求中持续存在

假设

这可能是由不正确的缓存逻辑引起的(例如缓存键未包含完整 URL 或归一化处理不当)。