FIT2CLOUD
文档 的图标

文档

2,089
795

一个为Halo提供文档 / 知识库能力的插件。 my-docs在 Halo 原有文章与页面模型之外,补充一套独立的文档系统,用来承载产品手册、开发文档、帮助中心这类需要树形目录和连续阅读体验的内容。

1.6.2
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