tsdaer 发布于
>=2.25.0
v1.6.2:媒体代理放行 octet-stream 对象并按扩展名推断类型
修复
- 对象存储里上传时没带 Content-Type 的对象会返回 application/octet-stream,
媒体代理此前按「不是 video/* 就拒」处理,直接回 415,明明能播的视频播不了。 - 判定改为三步:白名单类型(video/ audio/ image/)直接放行;明确危险的类型
(text/html、image/svg+xml、application/xml、JavaScript 等)一律拒绝;其余
按 URL 扩展名推断(webm → video/webm、m3u8 → application/vnd.apple.mpegurl 等)。 - 放行后响应类型改成推断结果;扩展名兜底命中图片时补 Content-Disposition: attachment;
所有响应统一带 X-Content-Type-Options: nosniff。 - 没有可用扩展名且类型不可识别时仍然拒绝,不猜。
- 拒绝时把上游实际类型与地址写进 WARN 日志,便于排查。
测试
- 新增 MediaTypePolicyTest(6 个用例)与三条桩客户端用例:octet-stream 视频放行并改写类型、
HTML 伪装成 .png 仍拒绝、无扩展名的二进制仍拒绝。Java 用例 114 → 123。
Generated from v1.6.2
资源下载
- plugin-my-docs-1.6.2.jar