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 白名单
- 禁用自动加载
推荐安全实践
- 类型验证: 验证 Content-Type 与实际内容匹配
- 沙箱执行: 在隔离环境中处理未知类型
- 用户控制: 让用户控制如何处理危险类型
- 默认安全: 对未知类型使用保守处理
- 定期更新: 保持 MIME 处理器为最新
安全检查清单:
- 验证 Content-Type
- 限制可执行类型
- 实现内容扫描
- 设置资源限制
- 记录安全事件
- 用户教育