跳到主要内容

8. 安全考虑

虽然 MIME media types 不会直接引入安全漏洞, 但使用某些类型确实会带来安全风险.

潜在风险

1. 可执行内容

某些 media types (如 application 类型) 可能包含可执行代码.

风险:

  • 恶意软件分发
  • 代码注入攻击
  • 权限提升

缓解措施:

  • 在沙箱中执行
  • 用户确认
  • 病毒扫描

2. Content Type 欺骗

声明的 media type 可能与实际内容不匹配.

风险:

  • 绕过安全过滤器
  • 意外的内容解析
  • XSS 攻击

缓解措施:

  • 内容嗅探验证
  • 严格 MIME 类型检查
  • Content-Type Nosniff 头

3. Multipart 攻击

复杂 multipart 结构可能被利用.

风险:

  • 解析器漏洞
  • 资源耗尽
  • boundary 混淆

缓解措施:

  • 限制嵌套深度
  • boundary 验证
  • 大小限制

4. External-Body 风险

message/external-body 可能引用外部资源.

风险:

  • 隐私泄露 (跟踪)
  • SSRF 攻击
  • 恶意内容加载

缓解措施:

  • 用户确认
  • URL 白名单
  • 禁用自动加载

推荐安全实践

  1. 类型验证: 验证 Content-Type 与实际内容匹配
  2. 沙箱执行: 在隔离环境中处理未知类型
  3. 用户控制: 让用户控制如何处理危险类型
  4. 默认安全: 对未知类型使用保守处理
  5. 定期更新: 保持 MIME 处理器为最新

安全检查清单:

  • 验证 Content-Type
  • 限制可执行类型
  • 实现内容扫描
  • 设置资源限制
  • 记录安全事件
  • 用户教育